RocksideWalletSdk 0.2.0

RocksideWalletSdk 0.2.0

Fred DE MATOS 维护。



 
依赖于
BigInt>= 0
TrezorCrypto~> 0.0.8
KeychainAccess~> 4.1.0
 

  • Fred DE MATOS

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 许可证下发布。