StarkNet SDK for Swift to interact with the starknet rpc nodes.
In XCode, go to your project, then select Package Dependencies
tab. Click the + button, and in the window that just appeared search for starknet.swift
package or paste the following url directly: https://github.com/software-mansion/starknet.swift
. Select package and install it.
Just add the package to the dependencies array in your Package.swift
file:
dependencies: [
...
.package(url: "https://github.com/software-mansion/starknet.swift.git", from: "0.7.0")
]
Then add `starknet.swift` to the dependencies array of every target you want to use the package in.
You can find the documentation of the project here.
In the Examples
folder you can find a demo ios application.
Before running it, make sure to run starknet devnet with given configuration:
starknet-devnet --port 5050 --seed 0
and run the demo app on ios simulator, to be able to access the local devnet instance.
Install hooks by running install_hooks.sh
script from Scripts
folder.
This project uses SwiftFormat for linting and formatting code. You can install it by running brew install swiftformat
. Unformatted code will be rejected by pre push hook and lint github action. To format code in the project, run
swiftformat .
in main project directory.
Due to reliability on starknet-devnet-rs
for testing, tests can be ran on macOS targets only.
You will need to set some environment variables:
DEVNET_PATH
- points tostarknet-devnet-rs
cliSCARB_PATH
- points toscarb
cli.SNCAST_PATH
- points tosncast
cli.
You can set them in XCode scheme or by running these commands:
export DEVNET_PATH="$(which starknet-devnet)"
export SCARB_PATH="$(which scarb)"
export SNCAST_PATH="$(which sncast)"
This assumes you already have the following tools installed:
starknet-devnet-rs
scarb
starknet-foundry
- providessncast
module
This project depends on two binary frameworks.
- crypto-cpp from starkware, with c bindings. Compiled for ios and macosx targets. Built in this repo
- poseidon from CryptoExperts. Compiled for ios and macosx targets. Built in this repo
- generate_k method, from starknet-rs sdk, wrapped in a c binding. Compiled for ios and macosx targets. Built in this repo
This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).