Solidity

是否可以與已部署的合約進行互動

  • March 12, 2018

是否可以使用 Web3 API 與私有區塊鏈中已部署的合約進行互動?

我已經部署了一份契約,我保存了契約地址,但我不知道我怎麼不能與這個契約互動?

您可以與混音進行互動。只需將您的環境更改為“web3 提供商”並從地址載入契約。現在,您將看到可以訪問的方法。

此外,您可以建構自己的 html 應用程序,您可以使用它來訪問。這樣做時,我得到了一個錯誤。請注意,我的合約部署在 ropsten 網路中。如果您想訪問您的契約,請使用 html 程式碼,而不是

web3 = new Web3(new Web3.providers.HttpProvider(" https://ropsten.infura.io/ “));

給(只要你通過 8545 埠連接)

web3 = new Web3(new Web3.providers.HttpProvider(” http://localhost:8545 “));

Ropsten 網路 - eth_sendTransaction 上不允許使用 405 方法

在 geth 下,您可以使用創建合約實例

  contractinstance = eth.contract(abi).at(addr)

該 abi 使用 -

solc --abi smartcontractname.sol

複製 abi(沒有引號到 geth 中的變數中),地址是您在部署期間給出的 20 字節地址。

然後這些函式可以使用 -

contractinstance.functionname(..)

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