Blockchain

使用 web3.js 訪問已部署的智能合約

  • October 7, 2019

我是乙太坊智能合約的新手。我創建了一個智能合約並將其部署在https://kovan.etherscan.io上。現在我正在嘗試從節點 js 訪問這個契約。下面是我的程式碼,但我不知道如何設置提供程序和其他內容。有人可以幫我嗎?

const Web3 = require('web3');
const web3 = new Web3(Web3.givenProvider || 'ws://localhost:8546', null, {});

module.exports = {
       tmp1: function (req, res, next){
               try{
                       Image(req,res)
               }
               catch(err){
                       console.error(err)
               }
       }
}
function Image (req,res){ 
       const abi =[{ my json of abi}];
       var contractInstance = web3.eth.contract(abi).at('0xB02542CF6C19B70813694EB9CFD60C10a796d83f');
       var result = contractInstance.buyCoordinator(req.query.coordinator,req.query.coimage).call();
       console.log(result);
       res.send(result);
}

我對如何設置提供者https://kovan.etherscan.io以及它將如何工作或知道我已在此處部署契約和我的帳戶地址感到完全困惑。

您的方法不起作用的原因是您沒有在任何地方連接到 Kovan 測試網。訪問http://infura.io並創建一個 Kovan 測試網帳戶(如果您還沒有)。Infura 為您提供 kovan 的“API KEY”。

import Web3 from 'web3' //or const Web3 = require('web3'); or direct import from node_modules

const testnet = `https://kovan.infura.io/'+API_KEY
const web3 = new Web3( new Web3.providers.HttpProvider(testnet) )

另一種方法是與 Truffle 和 Infura 結合使用:在創建 infura kovan 測試網帳戶時,您還可以獲得 12 個單詞的助記符。

const Web3 = require(‘web3’);
const MNEMONIC = <YOUR 12 words e.g.: ‘aquaman superman batman shazam flash wonderwoman greenlantern ironman captainamerica hulk blackwidow thanos’>
const API_KEY = ..

const provider = new HDWalletProvider(MNEMONIC, ‘https://kovan.infura.io/'+API_KEY);
const web3 = new Web3(provider);

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