以下是本人对Web3Swift日常使用到的方法的封装
//================================================华丽丽的分割线===========================================
//MARK:生成Data
func gettingData(address: String, money: Int, pownum: Int) -> String {
let jsonString = SymbolABIStr
do {
let jsonData = jsonString.data(using: .utf8)
let abi = try JSONDecoder().decode([ABIv2.Record].self, from: jsonData!)
let abiNative = try abi.map({ (record) -> ABIv2.Element in
return try record.parse()
})
let method = abiNative.filter({ (element) -> Bool in
switch element {
case .function(let function):
return function.name == "transfer"
default:
return false
}
})
let amount = BigUInt(10).power(pownum).multiplied(by: BigUInt(money))
let parameters = [address, amount] as [AnyObject]
let result = method[0].encodeParameters(parameters)
print(abiNative)
let hex: String = result!.toHexString()
if hex.count > 0 {
return "0x" + hex
}
return ""
} catch {
print(error)
return ""
}
}
//================================================华丽丽的分割线=================================================
//MARK:获取代币余额(弃用,获取太慢)
func gettingBalanceOfSymbol (symbolAddr: String, walletAddr: String) -> Double {
let jsonString = SymbolABIStr
// let web3Main = Web3.InfuraMainnetWeb3()
let url = URL(string: "https://ropsten.infura.io/")!
let web3Main = Web3.new(url)!
let coldWalletAddress = EthereumAddress(walletAddr) //from
l


1403

被折叠的 条评论
为什么被折叠?



