2

I deployed a smart contract on my private Parity node with Web3js. I got transaction hash and logs those I submitted at my contract creation. Everything works well, I can call functions correctly. However, I found root and status are always null. Do I need to notice anything when I setup private Parity nodes?

and here is my transaction receipt

{
  "blockHash": "0x01c6f939be54648c88ef1d4fac47566cb9b547e417f0349aa906727e452ff00d",
  "blockNumber": 47327,
  "contractAddress": "0x1dCd376E72Ba525ABbd3eD6c60Bab965755D9877",
  "cumulativeGasUsed": 3198406,
  "from": "0x452e132dad56f288b0bbbd956b064778578cfc71",
  "gasUsed": 3198406,
  "logs": [
    {
      "address": "0x1dCd376E72Ba525ABbd3eD6c60Bab965755D9877",
      "blockHash": "0x01c6f939be54648c88ef1d4fac47566cb9b547e417f0349aa906727e452ff00d",
      "blockNumber": 47327,
      "data": "0x000000000000000000000000452e132dad56f288b0bbbd956b064778578cfc71",
      "logIndex": 0,
      "removed": false,
      "topics": [
        "0x041109cfe10cfa549abb66b986d0a294ecc6c9ad39000abcb9c2afd422c8bd64"
      ],
      "transactionHash": "0xffa363046e6d07e316979c1fb5d32171751af5315b50e81dc8e43beb6be2eea0",
      "transactionIndex": 0,
      "transactionLogIndex": "0x0",
      "type": "mined",
      "id": "log_1bbacac5"
    },
    {...}
  ],
  "logsBloom": "0x04000000200000000000000000000080000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000020000000000000000000000080000000000000000000000400000000000000000000000000000400000000000000000000000000000000000000000000000008000000000000000000000000000000000004000000000000000001000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000100000000000000000000000000000000000000000008000000000",
  "root": null,
  "status": false,
  "to": null,
  "transactionHash": "0xffa363046e6d07e316979c1fb5d32171751af5315b50e81dc8e43beb6be2eea0",
  "transactionIndex": 0
}
1

I don't know if you should care about root, but status should be either 0x0 (failure) or 0x1 (success), according to the specs (https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgettransactionreceipt). It's weird that you have it set to false. Are you sure you have Byzantium (the EIP that introduces the status field) enabled on your chain? You might want to look into https://github.com/paritytech/parity-ethereum/issues/7124 for Byzantium-specific configuration changes.

  • 1
    Thanks! It works! Actually, I don't care status but Web3js does. If status is null, I'll get tx result from error callback not the normal one. – Kimi Wu Nov 8 '18 at 6:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.