Web3js

空 contract.methods 使用 web3 JS 1.0.0-beta30

  • September 20, 2018

我正在嘗試使用 web3 JS 1.0.0-beta30 使用以下程式碼在本地部署的契約上呼叫一個方法。

const tradingCardABI = JSON.parse(fs.readFileSync('build/contracts/TradingCard.json')).abi;

const ownerAddress = process.env.OWNER_ADDRESS || '0x627306090abaB3A6e1400e9345bC60c78a8BEf57';
const contractAddress = process.env.CONTRACT_ADDRESS || '0xf25186b5081ff5ce73482ad761db0eb0d25abfbf';

const tradingCardContract = new web3.eth.Contract(tradingCardABI, contractAddress);

console.log(`contract json interface=${JSON.stringify(tradingCardContract.options.jsonInterface)}`);
console.log(`contract models=${JSON.stringify(tradingCardContract.methods)}`);

我進入contract methods={}控制台。有什麼想法嗎?

我也試過了,想知道為什麼methods objectempty. 我試圖 console.loginstance.methods直接給我一個錯誤,那個……無法顯示。

然後我只是嘗試從這個“空”對象呼叫一個函式,它按預期工作。

所以答案是,即使它們沒有顯示在您的 json 輸出中,您也可以呼叫這些方法。

使用以下程式碼呼叫方法:

YOURINSTANCE.methods.YOUR_METHOD().call().then(ret => {
   console.log(ret);
});

引用自:https://ethereum.stackexchange.com/questions/40135