pocket-ios-sdk
Pocket iOS SDK 包含一个通用的接口,允许任何人构建针对任何区块链特定插件。SDK 主要包括两个交互,sendTransaction
用于写入和 executeQuery
用于读取。每个插件都有自己的元数据,特定于它所对应的区块链。所有查询和事务都符合 Pocket 节点所期望的格式。
安装
pod 'Pocket', :git => 'https://github.com/pokt-network/pocket-ios-sdk.git', :branch => 'master'
主要模型
从区块链构建读取和写入已经建模为 Query
和 Transaction
。读取和写入成功的响应是 QueryResponse
和 TransactionResponse
。钱包是客户端的主账户系统,通过使用私钥签名消息和事务进行所有认证。
什么是iOS插件?
Pocket iOS插件系统允许任何iOS应用支持开发者希望在此基础上构建的任何去中心化网络。它的目的是简化区块链开发,使开发者能够快速轻松地构建他们的应用程序。
每个插件都可以独立创建,并以Cocoapods包的形式单独支持。每个开发者都可以选择并使用他们在自己的网络中要支持的任何插件。
例如,如果您想为您的应用添加对Ethereum的支持,您可以使用我们的Pocket iOS Ethereum插件。
功能
PocketPlugin
是一个协议,每个插件都需要遵守。请以Pocket Ethereum插件为例,了解如何在其他区块链上实施。
创建钱包
static func createWallet(subnetwork: String, data: [AnyHashable: Any]?) throws -> Wallet
创建一个新的钱包。需要接受特定于区块链的数据以及一个subnetwork
来区分给定网络的测试网和主网钱包。返回一个Wallet
对象。该data
字段是一个泛型字典,由每个插件为特定区块链所需的数据定义。
钱包可以被认为是构建区块链应用的身份系统或认证。每个区块链都使用不同的哈希算法来创建钱包。例如,在Ethereum中,创建账户必须使用keccak256算法。
导入钱包
static func importWallet(privateKey: String, subnetwork: String, address: String?, data: [AnyHashable: Any]?) throws -> Wallet
导入任何现有的钱包,使用subnetwork
来区分给定网络的测试网和主网钱包。需要私钥、公钥以及任何额外数据。返回一个Wallet
对象。该data
字段是一个泛型字典,由每个插件为特定区块链所需的数据定义。
创建交易
静态功能 createTransaction(wallet: 钱包, params: [AnyHashable: Any]) 抛出错误 -> 交易
需要一个 钱包
对象来能够使用你的私钥签署交易。返回 交易
对象。字段 `params
` 是一个泛型字典,由每个插件定义,用于创建特定区块链的交易所需的参数。
创建交易相当于给特定区块链写入。根据区块链的不同,这可能有不同的确认时间,你的应用 UI 需要反映这一限制。
创建查询
静态功能 createQuery(subnetwork: String, params: [AnyHashable: Any], decoder: [AnyHashable: Any]?) 抛出错误 -> 查询
查询是对区块链的读取。它创建了一个符合 Pocket Node API 的请求。返回一个 `查询
` 对象。参数 `subnetwork
` 帮助请求路由到指定的子网络(例如主网络、测试网络等)。字段 `params
` 是一个泛型字典,由每个插件定义,用于创建特定区块链的查询参数。字段 `decoder
` 是一个可选的泛型字典,指定查询的返回类型。