Truffle

將合約 ABI 載入到反應應用程序時出錯

  • February 20, 2022

您好,我是 web3 開發的新手,我已經使用“truffle compile”在 ganache 上編譯了我的智能合約,並將生成的 JSON(DevToken.json)複製到 build 文件夾中,並將其粘貼到 react app /public 文件夾中

我創建了一個函式來載入 ABI

 async function getABI(){

   let ABI = "";
   await fetch('./DevToken.json', {
     headers: {
       'Accept': 'application/json',
       'Content-Type': 'application/json'
     }
   }).then((response) => {

     if (response.status == 200) {

       return response.json();
     } else {
       throw new Error('Error fetching ABI');
     }
   }).then((data) => {

     ABI = data;
   }).catch((error) => {
     throw new Error(error);
   });

   return ABI;
 }

不幸的是我收到了這個錯誤

在此處輸入圖像描述

有沒有其他方法可以導出 ABI 並將其導入到 react 應用程序中?

你不應該複製整個 DevToke.json

而是僅複製生成文件的 ABI 部分。

例子:

{
  "contractName":"DevToken",
  "abi":[...] # the ABI copied from build/DevToken.json file
 }

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