Ethereum入門 を参考に勉強しているのですが、コントラクトの利用時に
Error: gas required exceeds allowance (3403252) or always failing transaction
が表示されてコントラクトを使用できません。
コントラクトのデプロイはOKなのです。
> eth.getTransaction('0xdc9ccbc4ceb2bb2995936ec1499b5832fe20182c8aafdf1f03629b7c51ddbe14')
{
blockHash: "0xd424238083b52fac282897bd92489de5cca941e65b8540edb179fb6f5e3140d1",
blockNumber: 36,
from: "0x53f8adc81dd717ef85051d30512d976b67de9812",
gas: 107369,
gasPrice: 1000000000,
hash: "0xdc9ccbc4ceb2bb2995936ec1499b5832fe20182c8aafdf1f03629b7c51ddbe14",
input: "0x608060405234801561001057600080fd5b5060c68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b11460375780636d4ce63c146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea265627a7a723058200aa2dd1cde3ab552069d669da8d4bf38c4149ad3111141b4f2119e0cb129b5ae64736f6c63430005090032",
nonce: 1,
r: "0x384d96f64208198e4b0c33ff23a142033d23697e542603ba4ca30266a2de46dd",
s: "0x7b8c9715bfe9d2d492814c116f087c2b45877b91370a1c26ec154ca8131f71b9",
to: null,
transactionIndex: 0,
v: "0x41",
value: 0
}
コントラクトを利用しようとすると該当エラーが出て利用できません。
> cnt = eth.contract(myContract.abi).at(myContract.address)
{
abi: [{
constant: false,
inputs: [{...}],
name: "set",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function"
}, {
constant: true,
inputs: [],
name: "get",
outputs: [{...}],
payable: false,
stateMutability: "view",
type: "function"
}],
address: "0xd5aab8db7c2a650259e48c1e699e1f82bb3b922a",
transactionHash: null,
allEvents: function(),
get: function(),
set: function()
}
> cnt.set.sendTransaction(6,{from:eth.accounts[0]})
Error: gas required exceeds allowance (3337487) or always failing transaction
at web3.js:3143:20
at web3.js:6347:15
at web3.js:5081:36
at web3.js:4137:16
at <anonymous>:1:1
この対処方法はわかりますでしょうか?
よろしければ教えてください。
ご教授いただきました内容に基づき、試行錯誤の末' cnt.set.sendTransaction(6,{from: eth.accounts[0], gas: 50000, gasPrice: web3.toWei(40,'gwei')})'のコマンドでトランザクションを送信できました。全くの初心者でガスもよくわからずに質問したのですが回答いただきありがとうございました。