Web3js
如何知道 truffle 部署的合約地址
我在用
truffle migrate --reset --compile-all
將合約部署到本地網路
但為了使用new web3.eth.Contract(jsonInterface$$ , address $$$$ , options $$),我應該能夠知道合約地址,
那麼如何知道 truffle 正在部署的地址呢?
有幾種方法可以做到這一點:
- 在您的區塊鏈節點(testrpc|ganache 或您的測試/實時網路與 geth/parity)中,將記錄合約部署,您可以看到創建的地址
Transaction: 0xc2471aa6d1e020921d41247ac2a86eb5ad2447e93450347365a25f8d632e34bd Contract created: 0x98445ab3eaafdd2293981525631730c64adec41a // <--- contract address Gas usage: 245439 Block Number: 20 Block Time: Thu Dec 28 2017 19:43:44 GMT+0800 (+08)
2 & 3) 部署合約後,您可以通過工件獲取地址,可以直接從工件獲取地址,也可以使用工件並獲取合約實例。
範例:來自部署文件的日誌:(migrations/2_deploy_contracts.js)
(注意:我以部署文件為例,但您可以從您已導入並提供工件的任何 javascript 文件中檢索地址)
var SimpleStorage = artifacts.require("./SimpleStorage.sol"); module.exports = function(deployer) { deployer.deploy(SimpleStorage) // Option 2) Console log the address: .then(() => console.log(SimpleStorage.address)) // Option 3) Retrieve the contract instance and get the address from that: .then(() => SimpleStorage.deployed()) .then(_instance => console.log(_instance.address)); };