CruxPay
安装
CruxPay 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'CruxPay'
SDK 初始化
要初始化 SDK,您需要至少传递以下细节:-
-
walletClientName
- walletClientName 是一个键,用于识别存储在 gaiaHub 中的钱包特定配置,例如
- 子域名注册信息
- BNS(BlockStack 名称服务)节点
- 您的钱包货币符号映射
- 为了帮助您开始,您可以使用已经为我们的开发测试用户配置的
cruxdev
作为值。它具有 5 个预注册的加密符号以便快速启动。您可以联系我们所在的 telegram 频道以注册您自己的 walletClientName。
- walletClientName 是一个键,用于识别存储在 gaiaHub 中的钱包特定配置,例如
-
privateKey(可选)
- 需要重新初始化 CruxClient 来在不同的设备上使用相同的用户。
- 对于使用 HD 推导路径的客户端,建议使用路径(
m/889'/0/0'
)进行 CruxPay 密钥对节点推导,与账户索引有关。
以下示例显示了如何创建 cruxClient 实例。这些都是暴露的 SDK 操作。
import CruxPay let configBuilder = CruxClientInitConfig.Builder() configBuilder.setWalletClientName(walletClientName: "cruxdev") configBuilder.setPrivateKey(privateKey: "6bd397dc89272e71165a0e7d197b280c7a88ed5b1e44e1928c25455506f1968f") // (optional parameter) let cruxClient = CruxClient(configBuilder: configBuilder)
就是这样!现在您可以使用 cruxClient 对象来执行 SDK 操作 中定义的操作。
SDK 操作
-
isCruxIDAvailable(cruxIDSubdomain: String, onResponse: (Bool) -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:帮助检查特定的 CruxID 是否可以注册。
- 参数
- CruxID 的子域名部分
- onResponse 回调函数
- onErrorResponse 回调函数
cruxClient.isCruxIDAvailable(cruxIDSubdomain: "bob", onResponse: isCruxIDAvailableSuccess(cruxIDAvailable:), onErrorResponse: isCruxIDAvailableError(cruxError:)) func isCruxIDAvailableSuccess(cruxIDAvailable: Bool) -> () { // Do something here } func isCruxIDAvailableError(cruxError: CruxClientError) -> () { // Do something here }
-
registerCruxID(cruxIDSubdomain: String, onResponse: () -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:为用户预留/注册 cruxID。
- 参数
- CruxID 的子域名部分
- onResponse 回调函数
- onErrorResponse 回调函数
cruxClient.registerCruxID(cruxIDSubdomain: "bob", onResponse: registerCruxIDSuccess, onErrorResponse: registerCruxIDError(cruxError:)) func registerCruxIDSuccess() -> () { // Do something here } func registerCruxIDError(cruxError: CruxClientError) -> () { // Do something here }
-
resolveCurrencyAddressForCruxID(fullCruxID: String, walletCurrencySymbol: String, onResponse: (Address) -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:帮助查找任何 CruxID 的标记为公开可访问的货币的映射地址。
- 参数
cruxClient.resolveCurrencyAddressForCruxID(fullCruxID: "bob@cruxdev.", walletCurrencySymbol: "btc", onResponse: resolveCurrencyAddressForCruxIDSuccess(address: ), onErrorResponse: resolveCurrencyAddressForCruxIDError(cruxError:)) func resolveCurrencyAddressForCruxIDSuccess(address: Address) -> () { // Do something here } func resolveCurrencyAddressForCruxIDError(cruxError: CruxClientError) -> () { // Do something here }
-
getAddressMap(onResponse: ([String: Address]) -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:获取当前已公开注册的地址。
- 参数
- onResponse 回调函数
- onErrorResponse 回调函数
cruxClient.getAddressMap(onResponse: getAddressMapSuccess(addressMap:), onErrorResponse: getAddressMapError(cruxError:)) func getAddressMapSuccess(addressMap: [String: Address]) -> () { // Do something here } func getAddressMapError(cruxError: CruxClientError) -> () { // Do something here }
-
putAddressMap(newAddressMap: [String: Address], onResponse: ([String: [String: Address]]) -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:帮助更新以下两项:
- 发布/更改可公开访问的货币地址列表。
- 更改地址Hash和/或secIdentifier的值。
- 注意:这些地址现在是公开链接的,可以被解析。
- 参数
- newAddressMap表示经修改后具有符号和地址的映射,用户希望通过CruxID公开。
- onResponse 回调函数
- onErrorResponse 回调函数
let sampleAddressMap: [String: Address] = [ "btc": Address(addressHash: "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX", secIdentifier: nil), "xrp": Address(addressHash: "rpfKAA2Ezqoq5wWo3XENdLYdZ8YGziz48h", secIdentifier: "123456") ] cruxClient.putAddressMap(newAddressMap: sampleAddressMap, onResponse: putAddressMapSuccess(putAddressMapResponse:), onErrorResponse: putAddressMapError(cruxError:)) func putAddressMapSuccess(putAddressMapResponse: [String: [String: CruxPay.Address]]) -> () { // Do something here } func putAddressMapError(cruxError: CruxClientError) -> () { // Do something here }
- 描述:帮助更新以下两项:
-
getCruxIDState(onResponse: (CruxIDState) -> (), onErrorResponse: (CruxClientError) -> ())
- 描述:返回用户钱包此实例当前注册的CruxID(如果有的话)的详细信息及其注册状态。
- 参数
- onResponse 回调函数
- onErrorResponse 回调函数
cruxClient.getCruxIDState(onResponse: getCruxIDStateSuccess(cruxState:), onErrorResponse: getCruxError(cruxError:)) func getCruxIDStateSuccess(cruxState: CruxIDState) -> () { // Do something here } func getCruxError(cruxError: CruxClientError) -> () { // Do something here }
SDK对象定义
-
CruxID注册状态
- 示例
CruxIDRegistrationStatus(status: "PENDING", statusDetail: "Your subdomain was registered in transaction")
- 描述:定义CruxID注册过程中的状态。它有2个子组件。
- 状态
- 类型:字符串
- 描述:可能具有以下值[未知,待处理,被拒绝,完成]
- 状态详情
- 类型:字符串
- 描述:包含关于状态进一步详细信息/原因。
- 状态
- 示例
-
CruxID状态
- 示例
let cruxIDRegistrationStatus = CruxIDRegistrationStatus(status: "PENDING", statusDetail: "Your subdomain was registered in transaction") CruxIDState(cruxID: "[email protected]", registration_status: cruxIDRegistrationStatus)
- 描述:返回当前注册的ID及其状态。
-
地址
- 示例
Address(addressHash: "rpfKAA2Ezqoq5wWo3XENdLYdZ8YGziz48h", secIdentifier: "123456")
- 描述:地址对象。在这里,secIdentifier 是一个可选字段,如果不由区块链要求或区块链仍不支持,将作为
nil
发送。
授权
CruxPay 在 GPL-3.0 许可下可用。更多信息请参阅 LICENSE 文件。