Swift SDK for the NEO blockchain.
- A swift client for interacting with a node on the NEO blockchain.
- Written in Swift4 and using Xcode10
- Primarily meant to be the SDK for iOS and macOS wallet software.
- Underlying cryptographic methods compiled into frameworks via go-mobile.
- iOS framework
- underlying go code
- Implements read operations of neo blockchain
- Allows for send asset transactions
- This is pre-alpha software meant only to be used by experienced developers, use at your own risk
enum RPCMethod: String {
case getBlockCount = "getblockcount"
case sendTransaction = "sendrawtransaction"
case invokeContract = "invokescript"
case getMemPool = "getrawmempool"
}
- Cocoapods, and SPM support
- NEP2 Support
- Use cases
- Documentation
- Other transaction types
- Better management of dependencies
- Improved Node/Network Selection
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate NeoSwift into your Xcode project using Carthage, specify it in your Cartfile
:
github "CityOfZion/neo-swift" => 1.0
Run carthage update
to build the framework and drag the built neo-swift.framework
into your Xcode project.
Clone the repo and open the project in xcode and run all tests in NeoSwiftTests.swift
func demo() {
// Create an account via a wif string
let wifPersonA = "L4Ns4Uh4WegsHxgDG49hohAYxuhj41hhxG6owjjTWg95GSrRRbLL" // REMINDER TO NEVER USE THIS FOR REAL FUNDS
let wifPersonB = "L4sSGSGh15dtocMMSYS115fhZEVN9UuETWDjgGKu2JDu59yncyVf" // REMINDER TO NEVER USE THIS FOR REAL FUNDS
let accountA = Account(wif: wifPersonA)
let accountB = Account(wif: wifPersonB)
print(accountA.wif)
print(accountA.publicKeyString)
print(accountA.privateKeyString)
print(accountA.address)
print(accountA.hashedSignature) //Data
accountA.sendAssetTransaction(asset: .gasAssetId, amount: 1, toAddress: accountB.address) { success, error in
assert(success ?? false)
}
}
If you are linking NeoSwift as a Dynamic framework. Create a new “Run Script Phase” in your app’s target’s “Build Phases” and paste the following snippet in the script text field:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/NeoSwift.framework/strip-frameworks.sh"
This step is required to work around an App Store submission bug when archiving universal binaries.
- Open a new issue for any problems.
- Send a message to @Koba on the NEO Discord.
- If there's a feature you'd like to see included feel free to drop me a line or submit a pull request
- Open-source MIT.
- Main authors are @saltyskip and @apisit.
- Collaboration of O3Labs