KinCoreSDK 0.8.1

KinCoreSDK 0.8.1

Avi ShevinCorey Werner 维护。



 
依赖项
StellarKit= 0.4.1
Sodium= 0.8.0
 

  • Kin 基金会

Kin iOS

KinSDK

一个用于使用 Kin 的库。

安装

CocoaPods

在您的 Podfile 中添加以下内容。

pod 'KinSDK'

子项目

  1. 克隆此仓库(作为一个子模块或在不同目录中,由您选择)。
git clone --recursive https://github.com/kinfoundation/kin-core-ios
  1. KinSDK.xcodeproj 作为子项目拖动。
  2. 在您的主 .xcodeproj 文件中,选择所需的 Target。
  3. 转到 构建阶段,展开目标依赖项,并添加 KinSDK
  4. 在 Swift 中,使用 import KinSDK 并准备就绪!(我们尚未对 Objective-C 进行测试。)

这是我们的示例应用程序的完成方式 - 您可以查看具体设置的示例。

API 使用

SDK 公开了两个类,KinClientKinAccount

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)

准备账户使用是一个两步过程。

  1. 创建账户。这由外部服务完成。
  2. 激活账户。这是使用上文提到的API完成的。

要获取账户的当前状态,请调用上述API。

其他方法

KinClientKinAccount 都有其他方法,这些方法可能会很有用。特别是,KinAccount 拥有许多替代方法,这些方法对于许多操作要么是同步的,要么返回 Promise,而不是使用完成句柄。

错误处理

KinSDK 对每个 KinAccount 方法的操作都封装了特定于操作的错误。底层错误是失败的实际原因。

常见错误

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

StellarError.missingBalance:为了接收KIN,账户必须信任KIN发行人。请调用KinAccount.activate()执行此操作。

贡献

在提交问题和请求数据之前,请查看我们的CONTRIBUTING.md指南。

许可

此存储库受Kin Ecosystem SDK许可的约束。