Solidity

Truffle - 通過腳本在本地部署合約並與之互動

  • August 14, 2020

我創建了一個契約,編寫了一個遷移和一個測試。當我執行truffle test契約時,契約會在本地部署,然後針對它執行測試。一切正常。

我還在合約中添加了一個函式,如下所示(我也在測試中呼叫):

function entryExists(uint256 id, string memory type)
       public
       view
       returns (bool)
   {

現在,我想在本地部署該合約(也許truffle develop會有幫助?)並從一個 nodeJS 腳本中呼叫該函式。我該怎麼做?我似乎在任何地方都找不到任何關於它的東西,但感覺就像一個基本的東西。

提前感謝任何幫助的人。

當 Ganache 執行時,您的本地測試網乙太坊節點的行為與任何其他乙太坊節點一樣。只要您知道 TCP/IP 埠,就可以針對它呼叫 JSON-RPC API。

在這種情況下,該過程將是

  1. 編寫一個 JavaSCript 文件
  2. 導入 web3.js
  3. 使 web3.js 連接 HTTPProvider,這是您在本地執行的測試網節點
  4. 閱讀描述你的 Solidity 合約的 ABI 文件
  5. 導入其中一個帶有 ETH 的測試網賬戶
  6. 從 ABI 文件和部署的地址創建一個 web3.js 合約實例
  7. 使用 Contract 實例從帶有 ETH 的測試網帳戶呼叫您的方法

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