Truffle 执行交易
使用合约抽象,可以方便地在以太坊网络上执行合约函数。
在前面章节的MetaCoin合约中,有3个函数,其中 sendCoin会更改网络状态。
当调用 sendCoin时,我们将它作为交易执行。在下面的例子中,我们将从一个账户发送10元硬币到另一个账户:
truffle(develop)> let accounts = await web3.eth.getAccounts
() truffle(develop)> instance.sendCoin
(accounts[1], 10, {from: accounts[0]})
上面的代码中,有一些要注意的地方:
直接调用合约抽象的sendCoin函数,缺省情况下执行交易(写数据)而不是调用。
交易参数 – sendCoin函数没有第3个参数,我们传入了第三个参数 {from: accounts[0]},这个参数是一个特殊参数,称为交易参数,它总是可以作为最后一个参数传递给一个函数,用于设置交易的相关细节。 这里我们设置了交易来源地址,确保该交易来自 accounts[0],交易参数中,可以设置以下选项:
from
to
gas
gasPrice
value
data
nonce
继续使用示例MetaCoin,我们将执行 getBalance函数,该函数从网络中读取数据,不做任何更改,它只返回指定地址的MetaCoin余额。 尝试: truffle(develop)&g ...