Solidity

何時使用 web3modal 以及何時使用錢包訪問 .sol 智能合約的功能?

  • October 10, 2022

我正在建構一個引導式 web3 項目來訪問智能合約功能;該指南有時使用 web3modal 和錢包。下面的程式碼使用 web3modal 呼叫生成 ERC721 令牌的函式。

const web3modal = new Web3Modal();
       const connection = await web3modal.connect();
       const provider = new ethers.providers.Web3Provider(connection);
       const signer = provider.getSigner();

       const mintNftcontract = new ethers.Contract(hhMintNftContract, MintNFTABI, signer);
       let mintNfttransaction = await mintNftcontract.mintNftToSell(url);

但是,下面的程式碼使用錢包呼叫同一智能合約的函式來獲取鑄造的 ERC721 代幣。

const provider = new ethers.providers.JsonRpcProvider(hhRpc);
   const wallet = new ethers.Wallet(hhPriKey, provider);
   const ImagicaMarketContract = new ethers.Contract(hhImagicaMarketContract, ImagicaMarketABI, wallet);
   const mintNFTContract = new ethers.Contract(hhMintNftContract, MintNFTABI, wallet);
   const listedNFTData = await ImagicaMarketContract.getAvailableNFT();

那麼,在這個項目中這樣做有什麼具體原因嗎?我能找到的一種模式是,在區塊鏈上寫入數據的函式使用的是 web3modal,當從區塊鏈讀取數據時,使用的是錢包。但這只是我的猜測。

因此,如果有人能幫助我理解為什麼以及何時應該使用 web3modal 或錢包來訪問智能合約功能,那將是一個很大的幫助。請 :)

Web3Modal 是一個將使用者與您的 Dapp 連接起來並開始與區塊鏈互動的庫,但是對於創建實例,您應該將錢包作為簽名者或提供者傳遞。我建議在這裡閱讀 web3model 並ether.js 中創建一個實例

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