KinSDK 1.0.2

KinSDK 1.0.2

Avi ShevinCorey Werner 维护。



 
依赖
KinUtil= 0.1.0
Sodium= 0.8.0
 

KinSDK 1.0.2

Kin iOS

KinSDK

用于使用 Kin 的库。

安装

CocoaPods

将以下内容添加到您的 Podfile 中。

pod 'KinSDK'

子项目

  1. 将此仓库克隆(作为一个子模块或在不同目录中,由您决定)。
git clone --recursive https://github.com/kinecosystem/kin-sdk-ios
  1. KinSDK.xcodeproj 作为子项目拖入。
  2. 在您的主 .xcodeproj 文件中,选择要的目标。
  3. 转到 构建阶段,展开目标依赖关系,并添加 KinSDK
  4. 在 Swift 中,使用 import KinSDK 就可以了!(我们还没有对 Objective-C 进行测试。)

这就是我们创建 Sample App 的方法——您可以查看为具体示例的设置。

API 使用

SDK 提供了两个类,KinClientKinAccount

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。

其他方法

KinClientKinAccount都有其他方法可能有所帮助。特别是,KinAccount有许多操作的替代方法,这些方法可以是同步的,或者返回一个Promise,而不是使用完成句柄。

错误处理

KinSDK将错误包裹在KinAccount每种方法的特定操作错误中。底层错误是失败的实际原因。

常见错误

StellarError.missingAccount:账户在Stellar网络上不存在。您必须通过使用以KinAccount.publicAddress为目标的CREATE_ACCOUNT操作来创建账户。这是通过特定的应用程序服务完成的,并且超出了此SDK的范围。

贡献

请在打开问题报告和拉取请求之前查阅我们的CONTRIBUTING.md指南。

许可证

本仓库遵循Kin生态系统SDK许可协议。