Solidity

訪問/修改合約中的期權參數

  • June 23, 2017

我正在使用 truffle 和 metamask 部署一個非常簡單的合約,可以將乙太幣從一個測試賬戶轉移到另一個賬戶。

如何使用我的 JavaScript 文件訪問在部署期間傳入的選項參數?部署時傳入的建構子參數後面可以修改嗎?

這是 2_deploy_contracts.js 中的行:

deployer.deploy(EscrowPayment, web3.eth.accounts[1], web3.eth.accounts[2], {gas: 4400000, value: web3.toWei(20, 'ether')});

選項參數將是{gas: 4400000, value: web3.toWei(20, 'ether')}

這是合約中的建構子:

function EscrowPayment(address _seller, address _judge) payable {
   buyer = msg.sender;
   seller = _seller;
   judge = _judge;
}

我閱讀了此文件,但無法執行“myContract.options”之類的操作

您在最後一個 json 對像中傳遞的選項是:gaslimit 和要發送的 Ether 值。這些(以及其他可配置的參數,例如發送者或 gasprice)可通過msgtx對象獲得,如下所述

function EscrowPayment(address _seller, address _judge) payable {
   gasLimit = msg.gas; // this is only the *remaining* gas and not the exact value that you passed
   value = msg.value; // in Wei
   gasPrice = tx.gasprice;
   buyer = msg.sender;
   seller = _seller;
   judge = _judge;
}

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