[Ethereum] ‘hex data is odd-length’ error occured when using web3 & testrpc

solidityweb3js

Here's my code .

var Web3 = require("C:\\Users\\Administrator\\node_modules\\web3")
con_abi = [
    {
        "inputs": [],
        "name": "sloc111",
        "outputs": [
            {
                "internalType": "string",
                "name": "",
                "type": "string"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    }
]
con_addr = "0x0ed72dfd4c63dd97df8fec07e5a6bba466c6adf5";
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
var echoContract = new web3.eth.Contract(con_abi,con_addr);
// console.log(echoContract.sloc111);
// console.log(typeof(echoContract));
echoContract.methods.sloc111().call().then(console.log);

Error :

Error: hex data is odd-length (argument="value", value="0x0", code=INVALID_ARGUMENT, version=bytes/5.1.0)
    at Logger.makeError (C:\Users\Administrator\node_modules\@ethersproject\logger\lib\index.js:180:21)
    at Logger.throwError (C:\Users\Administrator\node_modules\@ethersproject\logger\lib\index.js:189:20)
    at Logger.throwArgumentError (C:\Users\Administrator\node_modules\@ethersproject\logger\lib\index.js:192:21)
    at Object.arrayify (C:\Users\Administrator\node_modules\@ethersproject\bytes\lib\index.js:79:24)
    at AbiCoder.decode (C:\Users\Administrator\node_modules\@ethersproject\abi\lib\abi-coder.js:93:53)
    at ABICoder.decodeParametersWith (C:\Users\Administrator\node_modules\web3-eth-abi\lib\index.js:304:30)
    at ABICoder.decodeParameters (C:\Users\Administrator\node_modules\web3-eth-abi\lib\index.js:285:17)
    at Contract._decodeMethodReturn (C:\Users\Administrator\node_modules\web3-eth-contract\lib\index.js:470:22)
    at Method.outputFormatter (C:\Users\Administrator\node_modules\web3-eth-contract\lib\index.js:760:42)
    at Method.formatOutput (C:\Users\Administrator\node_modules\web3-core-method\lib\index.js:147:54)
    at sendTxCallback (C:\Users\Administrator\node_modules\web3-core-method\lib\index.js:523:33)
    at C:\Users\Administrator\node_modules\web3-core-requestmanager\lib\index.js:308:9
    at XMLHttpRequest.request.onreadystatechange (C:\Users\Administrator\node_modules\web3-providers-http\lib\index.js:9
8:13)
    at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\Administrator\node_modules\xhr2-cookies\dist\xml-http-request-e
vent-target.js:34:22)
    at XMLHttpRequest._setReadyState (C:\Users\Administrator\node_modules\xhr2-cookies\dist\xml-http-request.js:208:14)
    at XMLHttpRequest._onHttpResponseEnd (C:\Users\Administrator\node_modules\xhr2-cookies\dist\xml-http-request.js:318:
14) {
  reason: 'hex data is odd-length',
  code: 'INVALID_ARGUMENT',
  argument: 'value',
  value: '0x0'
}

My TESTRPC version is

EthereumJS TestRPC v6.0.3 (ganache-core: 2.0.2)

Thank you!

Best Answer

just change to value="0x00" so it is an even length byte

Related Topic