Truffle

使用 truffle 控制台 –network kovan 時,契約尚未部署到檢測到的網路(網路/工件不匹配)

  • April 5, 2022

我試圖從部署到 kovan 網路的契約中呼叫一個函式,然後當我使用 truffle 控制台 –network kovan 並嘗試部署我的契約時,它說該契約尚未部署到檢測到的網路,但它已經部署甚至在我的 web3 應用程序中使用它。

truffle(kovan)> const daiToken = await DaiToken.deployed()
Uncaught:
Error: DaiToken has not been deployed to detected network (network/artifact mismatch)

我在 etherscan kovan 上的契約:https ://kovan.etherscan.io/address/0x478A24D4CcbFedE653D6aeE3DC202663e4ba2Be0

truffle-config.js 中的網路配置:

kovan: {
     provider: () => new HDWalletProvider(MNEMONIC, endpointUrl),
     network_id: 42,       
     gas: 5500000,        
     confirmations: 2, 
     timeoutBlocks: 200,
     networkCheckTimeoutnetworkCheckTimeout: 10000,
     skipDryRun: true 
   }

如果令牌已經部署。

await DaiToken.at(ADDRESS_HERE);在您的程式碼中使用。在ADDRESS_HEREkovan 上用 DaiToken 部署到的合約地址替換它的位置。

例如在我的程式碼中:

const Router = artifacts.require('uniswapv2/UniswapV2Router02.sol');
...
const router = await Router.at('0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'); // Kovan Uniswap V2 Router

這將獲得Router部署在該地址的實例

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