KinSDK
一个用于使用 Kin 的库。
安装
CocoaPods
在您的 Podfile
中添加以下内容。
pod 'KinSDK'
子项目
- 克隆此仓库(作为一个子模块或在不同目录中,由您选择)。
git clone --recursive https://github.com/kinfoundation/kin-core-ios
- 将
KinSDK.xcodeproj
作为子项目拖动。 - 在您的主
.xcodeproj
文件中,选择所需的 Target。 - 转到 构建阶段,展开目标依赖项,并添加
KinSDK
。 - 在 Swift 中,使用
import KinSDK
并准备就绪!(我们尚未对 Objective-C 进行测试。)
这是我们的示例应用程序的完成方式 - 您可以查看具体设置的示例。
API 使用
SDK 公开了两个类,KinClient
和 KinAccount
。
KinClient
KinClient
存储网络的配置信息,并负责管理账户。
let kinClient = KinClient(with: URL, networkId: NetworkId)
账户管理
public func addAccount() throws -> KinAccount
public func deleteAccount(at index: Int) throws
public private(set) var accounts: KinAccounts
KinAccount
在配置的网络中使用账户之前,必须使用原生网络货币对其进行充值。此步骤必须由服务执行,且在当前 SDK 的范围之外。
激活
在账户可以接收 KIN 之前,必须对其进行激活。
account.activate(completion: { txHash, error in
if error == nil {
// report success
}
})
KIN
获取账户当前余额
func balance(completion: @escaping BalanceCompletion)
获取一个侦听器对象,当账户余额发生变化时将触发事件。请参阅示例应用以获取示例。
func watchBalance(_ balance: Decimal?) throws -> BalanceWatch
向另一用户发送 KIN
func sendTransaction(to recipient: String,
kin: Decimal,
memo: String?,
completion: @escaping TransactionCompletion)
memo
字段可以包含长度不超过 28 个字符的字符串。典型用途是包括订单号,方便服务验证付款。
杂项
var publicAddress: String { get }
网络上的账户地址。这是用于指定支付目的地或请求服务创建账户的标识符。
func status(completion: @escaping (AccountStatus?, Error?) -> Void)
准备账户使用是一个两步过程。
- 创建账户。这由外部服务完成。
- 激活账户。这是使用上文提到的API完成的。
要获取账户的当前状态,请调用上述API。
其他方法
KinClient
和 KinAccount
都有其他方法,这些方法可能会很有用。特别是,KinAccount
拥有许多替代方法,这些方法对于许多操作要么是同步的,要么返回 Promise,而不是使用完成句柄。
错误处理
KinSDK
对每个 KinAccount
方法的操作都封装了特定于操作的错误。底层错误是失败的实际原因。
常见错误
StellarError.missingAccount
:账户在Stellar网络上不存在。您必须通过使用CREATE_ACCOUNT
操作并以KinAccount.publicAddress
作为目的地来创建账户。这是使用专用的服务完成的,并超出了本SDK的范围。
StellarError.missingBalance
:为了接收KIN,账户必须信任KIN发行人。请调用KinAccount.activate()
执行此操作。
贡献
在提交问题和请求数据之前,请查看我们的CONTRIBUTING.md指南。
许可
此存储库受Kin Ecosystem SDK许可的约束。