Softkey Signature Provider 是一个为 EOSIO SDK for Swift 提供的示例可插拔签名提供程序。它允许使用内存中 K1 密钥对交易进行签名。
重要:Softkey Signature Provider 将密钥存储在内存中,因此不安全。它仅应用于开发目的。在生产环境中,我们强烈建议使用与安全保险库、认证器或钱包接口的签名提供程序,例如 EOSIO SDK for Swift: Vault Signature Provider。
所有产品和公司名称均为其各自持有者的商标™或注册®商标。使用它们并不意味着与它们有任何关联或获得它们的认可。
内容
关于签名提供者
签名提供者抽象可以说是 EOSIO Swift 提供者中最有用的。它负责
- 获取可用的签名密钥(`getAvailableKeys`),
- 以及使用部分可用的密钥请求并获得交易签名(`signTransaction`)。
通过仅切换交易上的签名提供者,签名请求可以通过多种方式路由。需要软件签名?使用此签名提供者配置 `EosioTransaction`。需要平台 Keychain 或 Secure Enclave 中的密钥进行签名?请参阅 `Vault Signature Provider`。需要用户设备上的钱包进行签名?签名提供者也能做到这一点!
所有签名提供者都必须遵循 `EosioSignatureProviderProtocol
协议。
先决条件
- Xcode 10 或更高版本
- CocoaPods 1.5.3 或更高版本
- 对于 iOS,需要 iOS 11 或更高版本
安装
Softkey Signature Provider 预计将与 EOSIO SDK for Swift 一起作为插件提供。
要将 Softkey Signature Provider 与 EOSIO SDK for Swift 一起用于您的应用程序,请将以下 pod 添加到您的 Podfile 中
use_frameworks!
target "Your Target" do
pod "EosioSwift", "~> 0.4.0" # EOSIO SDK for Swift core library
pod "EosioSwiftSoftkeySignatureProvider", "~> 0.4.0" # pod for this library
# add other providers for EOSIO SDK for Swift
pod "EosioSwiftAbieosSerializationProvider", "~> 0.4.0" # serialization provider
然后运行 `pod install`。
现在 Softkey Signature Provider 已准备好按照 `EOSIO SDK for Swift 基本使用说明` 用于 EOSIO SDK for Swift。
直接使用
通常情况下,在签名过程中会通过 EosioTransaction
调用签名提供者。(这里有一个示例。) 但是,如果您需要获取可用的密钥或直接进行请求签名,可以按照以下方式调用此库
let signProvider = try? EosioSoftkeySignatureProvider(privateKeys: privateKeysArray)
let publicKeysArray = signProvider?.getAvailableKeys() // Returns the public keys.
要签名一个 EosioTransaction
对象,请创建一个 EosioTransactionSignatureRequest
对象,并用这个请求调用 EosioSoftkeySignatureProvider.signTransaction(request:completion:)
方法
var signRequest = EosioTransactionSignatureRequest()
signRequest.serializedTransaction = serializedTransaction
signRequest.publicKeys = publicKeys
signRequest.chainId = chainId
signProvider.signTransaction(request: signRequest) { (response) in
...
}
文档
请参阅生成的代码文档 https://eosio.github.io/eosio-swift-softkey-signature-provider,或者通过克隆此仓库,并在您的浏览器中打开 docs/index.html
文件。
iOS 示例应用
如果您想了解 EOSIO SDK for Swift:Softkey Signature Provider 的实际应用,请查看我们的开源 iOS 示例应用—这是一个工作应用,它获取一个账户的代币余额并推送转账操作。
库方法
此库是 EosioSignatureProviderProtocol
的示例实现。它实现了以下协议方法
EosioSoftkeySignatureProvider.signTransaction(request:completion:)
签署一个EosioTransaction
。EosioSoftkeySignatureProvider.getAvailableKeys(...)
返回一个包含与对象初始化时使用的私钥关联的公钥的数组。
初始化实现
EosioSoftkeySignatureProvider.init(privateKeys:)
使用字符串数组初始化签名提供者。
想帮忙?
许可
重要
查看LICENSE了解版权和许可条款。Block.one 作为 EOSIO 社区的成员自愿贡献,不负责确保软件或相关应用的总体性能。我们不对软件或相关文档(无论明示或暗示)作出任何陈述、保证、承诺或承诺,包括但不限于商销性、适用于特定目的和非侵权性。在任何情况下,我们均不对因软件或文档或使用或处理软件或文档而产生的任何索赔、损害或其它责任负责,无论该责任基于合同、侵权或其他原因。任何测试结果或性能指标仅供参考,并不代表在所有条件下的性能。任何对第三方或第三方产品、服务或其他资源的参考资料,并非 Block.one 的认同或推荐。我们对您使用或依赖这些资源的任何事均不负责,并放弃任何和所有责任和责任。第三方资源可能会随时更新、更改或终止,因此此处提供的信息可能已过时或不准确。任何使用或提供给第三方的此软件有关提供软件、商品或服务的个人应告知第三方这些许可条款、免责声明和责任排除。Block.one、EOSIO、EOSIO Labs、EOS、七面体及其相关标志是 Block.one 的商标。
钱包和相关组件是复杂的软件,需要最高级别的安全性。如果构建或使用不当,可能会损害用户的私钥和数字资产。在使用前,钱包应用程序和相关组件应进行彻底的安全评估。只有经验丰富的开发者应使用此软件。