KinSDK
用于使用 Kin 的库。
安装
CocoaPods
将以下内容添加到您的 Podfile
中。
pod 'KinSDK'
子项目
- 将此仓库克隆(作为一个子模块或在不同目录中,由您决定)。
git clone --recursive https://github.com/kinecosystem/kin-sdk-ios
- 将
KinSDK.xcodeproj
作为子项目拖入。 - 在您的主
.xcodeproj
文件中,选择要的目标。 - 转到 构建阶段,展开目标依赖关系,并添加
KinSDK
。 - 在 Swift 中,使用
import KinSDK
就可以了!(我们还没有对 Objective-C 进行测试。)
这就是我们创建 Sample App 的方法——您可以查看为具体示例的设置。
API 使用
SDK 提供了两个类,KinClient
和 KinAccount
。
KinClient
KinClient
存储网络的配置,并负责管理账户。
let kinClient = KinClient(with: URL, network: Network, appId: AppId)
账户管理
func addAccount() throws -> KinAccount
func deleteAccount(at index: Int) throws
func importAccount(_ jsonString: String, passphrase: String) throws -> KinAccount
var accounts: KinAccounts
KinAccount
在使用配置的网络上的账户之前,需要使用 KIN 货币进行资助。这一步骤必须由服务执行,并超出此 SDK 的范围。
KIN
为了检索账户的当前余额
func balance() -> Promise<Kin>
获取一个观察者对象,该对象将在账户余额变化时触发事件。请参阅示例应用程序以获取示例。
func watchBalance(_ balance: Kin?) throws -> BalanceWatch
要将 KIN 发送给另一个用户,首先生成一个交易。
func generateTransaction(to recipient: String, kin: Kin, memo: String?) -> Promise<TransactionEnvelope>
可包含长度最多为 28 个字符的字符串的
memo
字段。典型用途是包含一个服务可以使用来验证付款的订单编号。
将返回的 TransactionEnvelope
传递给 WhitelistEnvelope
。
init(transactionEnvelope: TransactionEnvelope, networkId: Network.Id)
将 WhitelistEnvelope
传递给服务器进行签名。服务器响应应包含第二个签名的 TransactionEnvelope
,然后可以发送。
func sendTransaction(_ transactionEnvelope: TransactionEnvelope) -> Promise<TransactionId>
杂项
var publicAddress: String { get }
账户的网络地址。这是用于指定付款目的地或请求服务创建账户的标识符。
func status() -> Promise<AccountStatus>
创建账户是由外部服务完成的。要获得账户当前状态,调用上述API。
其他方法
KinClient
和KinAccount
都有其他方法可能有所帮助。特别是,KinAccount
有许多操作的替代方法,这些方法可以是同步的,或者返回一个Promise,而不是使用完成句柄。
错误处理
KinSDK
将错误包裹在KinAccount
每种方法的特定操作错误中。底层错误是失败的实际原因。
常见错误
StellarError.missingAccount
:账户在Stellar网络上不存在。您必须通过使用以KinAccount.publicAddress
为目标的CREATE_ACCOUNT
操作来创建账户。这是通过特定的应用程序服务完成的,并且超出了此SDK的范围。
贡献
请在打开问题报告和拉取请求之前查阅我们的CONTRIBUTING.md指南。
许可证
本仓库遵循Kin生态系统SDK许可协议。