Truffle
如何確定 truffle exec 腳本中的網路?
我正在編寫一個要執行的腳本,
truffle exec
我需要在我們呼叫的網路上添加一些邏輯條件truffle exec
。這(大致)是我在腳本中想要的:
const contract = artifacts.require("./MyContract.sol"); module.exports = function(callback) { // TODO: Do some conditional thing based on network! contract.callMethod(); }
我希望通過以下方式呼叫此腳本:
truffle exec script.js --network ropsten
不確定這是否是最好的方法,但您傳遞給 的參數
truffle
(包括網路)在process.argv
.腳本.js:
process.argv.forEach(function (val, index, array) { console.log(index + ': ' + val); });
然後:
> truffle exec script.js --network development Using network 'development'. 0: /usr/bin/node 1: /usr/bin/truffle 2: exec 3: foo.js 4: --network 5: development
因此,在網路名稱的相關索引處訪問該數組。
您可以使用web3.eth.network api。
'use strict'; global.artifacts = artifacts; global.web3 = web3; async function main(){ const newtworkType = await web3.eth.net.getNetworkType(); const networkId = await web3.eth.net.getId(); console.log("network type:"+newtworkType); console.log("network id:"+networkId); } // For truffle exec module.exports = function(callback) { main().then(() => callback()).catch(err => callback(err)) };
我希望它有用:)