Arrays
幫助儲存字節數組
pragma solidity ^0.4.0; contract Storage { uint8[5][5] public data; function Storage() public { } function setData(uint8[] _data) { for (int i=0;i<5; i++) data[i][1]=_data[i]; } function getData() public constant returns(uint8[5][5]){ return data; } }
在我的 web3 頁面上,我呼叫合約來儲存數據:
var byteArray = new Uint8Array(25); var randomArray = [0x80, 0x02, 0x03, 0x04, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05, 0x01, 0x02, 0x03, 0x04, 0x05]; storeSC.setData(byteArray , function (error, result) { if (!error) document.getElementById('response').innerHTML = 'Success:' + result else console.error(error); });
任何人都可以向我解釋為什麼傳遞
randomArray
一切都有效,但我發送的數據比需要的多得多,傳遞byteArray
我得到:invalid number of arguments to solidity function
我只是希望能夠將一組字節傳遞給方法 setData,請問有什麼幫助嗎?
我懷疑這是使用 js 類型數組對象的問題,它是單個實例,它不是數組。可能首先轉換為數字數組,使用此https://stackoverflow.com/q/12760643/442396