1

就像标题中所说的那样,在运行 truffle test 之后,我得到了这个:

 TestMetacoin
    1) "before all" hook: prepare suite

  Contract: MetaCoin
    ✓ should put 10000 MetaCoin in the first account
    2) should call a function that depends on a linked library
    > No events were emitted
    ✓ should send coin correctly (6078ms)


  2 passing (6s)
  2 failing

  1) TestMetacoin "before all" hook: prepare suite:
     Error: Intrinsic gas too low
      at Object.InvalidResponse (/usr/lib/node_modules/truffle/node_modules/truffle-contract/node_modules/web3/lib/web3/errors.js:35:16)
      at /usr/lib/node_modules/truffle/node_modules/truffle-contract/node_modules/web3/lib/web3/requestmanager.js:86:36
      at XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/node_modules/web3/lib/web3/httpprovider.js:119:13)
      at XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/node_modules/xhr2/lib/xhr2.js:64:18)
      at XMLHttpRequest._setReadyState (/usr/lib/node_modules/truffle/node_modules/xhr2/lib/xhr2.js:354:12)
      at XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/node_modules/xhr2/lib/xhr2.js:509:12)
      at IncomingMessage.<anonymous> (/usr/lib/node_modules/truffle/node_modules/xhr2/lib/xhr2.js:469:24)
      at endReadableNT (_stream_readable.js:974:12)
      at _combinedTickCallback (internal/process/next_tick.js:74:11)
      at process._tickDomainCallback (internal/process/next_tick.js:122:9)

  2) Contract: MetaCoin should call a function that depends on a linked library:
     AssertionError: Library function returned unexpected function, linkage may be broken: expected 0 to equal 20000
      at test/metacoin.js:25:14
      at process._tickDomainCallback (internal/process/next_tick.js:129:7)

我的创世区块如下:

{
    "nonce": "0x0000000000000042",
    "difficulty": "0x4000",
    "alloc": {
            "0xfd0ceb7965a0e4c3146c1f901fbab9668653af6b": {
            "balance": "325406000000000"
        }
    },
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0xfd0ceb7965a0e4c3146c1f901fbab9668653af6b",
    "etherbase" : "0xfd0ceb7965a0e4c3146c1f901fbab9668653af6b",
    "timestamp": "0x00",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "0x",
    "gasLimit": "0x3d0900"
}

我的 truffle.js 是这样的:

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*", // Match any network id
      gas: 1000000
    }
  }
};

我不明白在这些设置下气体有什么问题。即使没有人有确切的答案,对气体限制(不是气体本身)的一些额外解释也会有所帮助。

4

1 回答 1

0

我最终将创世块 gasLimit 更改为

"gasLimit": "0x2FEFD800", 

将宅基地块配置为 10(显然,否则在使用 geth 时会出现问题):

"config": {
            "homesteadBlock": 10
    },

和 truffle.js 气体设置为 5000000。

测试通过。

于 2017-03-03T22:44:08.323 回答