Rockside 钱包 Sdk_IOS
安装
CocoaPods
将 WalletSdk 添加到您的 Podfile
pod 'RocksideWalletSdk', '~> 0.2'
然后运行以下命令
$ pod install
设置
import RocksideWalletSdk
let rockside = Rockside(token: "YOUR_TOKEN", chain:.ropsten)
使用您的 API KEY 创建您的移动应用令牌。您必须使用您应用的 bundle 标识符作为域名。 见我们的 Rockside 令牌文档。
身份智能钱包
创建应用程序智能钱包
rockside.createIdentity() { (result) in
switch result {
case .success(let txhash):
// Here is the hash of the tx deploying the smartwallet
// To know when the TX is mined use : rockside.rpc.waitTxToBeMined(txHash: txHash)
print(txhash)
//created identity is available as rockside.identity
print(rockside.identity?.eoa.ethereumAddress)
print(rockside.identity?.ethereumAddress)
break
case .failure(let error):
print(error)
break
}
}
恢复身份智能钱包
rockside.restoreIdentity(mnemonic: MNEMPONIC, address: IDENTITY_SMART_CONTRACT_ADDRESS)
//restored identity is available as rockside.identity
print(rockside.identity?.eoa.ethereumAddress)
中继交易
identity.relayTransaction(to: "0x2c68bfBc6F2274E7011Cd4AB8D5c0e69B2341309",
value: 0,
data: "0x") { (result) in
switch result {
case .success(let txhash):
print(txhash)
break
case .failure(let error):
print(error)
break
}
}
ETH余额
identity.getBalance() { (result) in
switch result {
case .success(let balance):
print(balance)
break
case .failure(let error):
print(error)
break
}
}
ERC20: 余额
identity.getErc20Balance(ercAddress: ERC20_ADDRESS) { (result) in
switch result {
case .success(let balance):
print(balance)
break
case .failure(let error):
print(error)
break
}
}
ERC20: 授权
identity.erc20Approve(ercAddress: ERC20_ADDRESS, spender: ADDRESS_TO_APPROVE, value: APPROVED_AMOUNT) { (result) in
switch result {
case .success(let txhash):
print(txhash)
break
case .failure(let error):
print(error)
break
}
}
ERC20: 转账
identity.erc20Transfer(ercAddress: ERC20_ADDRESS, to: DEST_ADDRESS, value: AMOUNT_TO_SEND) { (result) in
switch result {
case .success(let txhash):
print(txhash)
break
case .failure(let error):
print(error)
break
}
}
白名单:更新
identity.updateWhiteList(eoa: EOA_TO_UPDATE, value:true) { (result) in
switch result {
case .success(let txhash):
print(txhash)
break
case .failure(let error):
print(error)
break
}
}
白名单:是否是EOA白名单
identity.isEOAWhiteListed(eoa: EOA_TO_UPDATE) { (result) in
switch result {
case .success(let result):
print(result) // true or false
break
case .failure(let error):
print(error)
break
}
}
RPC
交易回执
rockside.rpc.transactionReceipt(txHash: TX_HASH) { (result) in
switch result {
case .success(let receipt): //TransactionReceipt type
print(receipt.status)
break
case .failure(let error):
print(error)
break
}
}
等待交易被挖矿
rockside.rpc.waitTxToBeMined(txHash: TX_HASH) { (result) in
switch result {
case .success(let receipt): //TransactionReceipt type
print(receipt.status)
break
case .failure(let error):
print(error)
break
}
}
存储
使用密钥链存储您的身份。
存储
try? rockside.storeIdentity()
检索
try? rockside.retrieveIdentity()
//retrieved identity is available as rockside.identity
print(rockside.identity?.eoa.ethereumAddress)
print(rockside.identity?.ethereumAddress)
清除
try? rockside.clearIdentity()
集成测试
要运行集成测试,请将以下环境变量添加到测试方案中
INTEGRATION_TEST=true
ROCKSIDE_TOKEN=A_TOKEN_CREATED_WITH_YOUR_APIKEY // domain must be com.apple.dt.xctest.tool
许可
在MIT 许可证下发布。