При отправке ETH в Swift появляется сообщение об ошибке "недостаточно средств для газа * цена + стоимость" - PullRequest
0 голосов
/ 06 мая 2020

Спасибо за вашу помощь.

Что касается обработки передачи ETH, я выполнял обработку передачи ETH со следующими источниками,

В журнале отображается:

В моем кошельке "0,0001" "в нем, поэтому не похоже, что мой баланс недостаточен. Почему я получаю следующую ошибку? Мы были бы признательны, если бы вы одолжили нам свою мудрость.

【журнал】

~~~エラー~~~
nodeError(desc: "insufficient funds for gas * price + value")

【звоните】

sendEth(keyData: [キーデータ], address: [自分のWalletアドレス], pass: [Walletのパスワード], toAddress: [送信先のWalletアドレス], sendEthPrice: "0.00001", gasEthPrice: "0.000084")

【источник】

func sendEth(keyData: String, address: String, pass: String, toAddress: String, sendEthPrice: String, gasEthPrice: String) {
    print(sendEthPrice)
    print(gasEthPrice)

    guard
        let keystoreSetting = EthereumKeystoreV3(keyData),
        let walletAddress = EthereumAddress(address),
        let toAddress = EthereumAddress(toAddress),
        let gas = Web3.Utils.parseToBigUInt(gasEthPrice, units: .eth)
    else {
        print("~~~エラー1~~~")
        return
    }

    let web3 = Web3.InfuraMainnetWeb3()
    web3.addKeystoreManager(KeystoreManager([keystoreSetting]))

    let contract = web3.contract(Web3.Utils.coldWalletABI, at: toAddress, abiVersion: 2)!
    let amount = Web3.Utils.parseToBigUInt(sendEthPrice, units: .eth)

    var options = TransactionOptions.defaultOptions
    options.value = amount
    options.from = walletAddress
    options.gasPrice = .manual(gas)

    let transaction = contract.write(
        "fallback",
        parameters: [AnyObject](),
        extraData: Data(),
        transactionOptions: options)!

    do{
        let result = try transaction.send(password: pass)
        print("成功")
        print(result)
    } catch let e {
        print("~~~エラー~~~")
        print(e)
        return
    }
}
...