Metamask
Metamask 中的應付函式
請分享您使用 Metamask/ether.js 互動的經驗。我創建了一個支付函式,並且像往常一樣在 Remix 或 Etherscan 中我們可以直接與合約互動(我們有輸入將值放入其中)。當我在安全帽上部署相同的契約時,什麼也沒有發生。我無法理解要採取的步驟。假設我有一個功能:
function setGreeting(string memory _greeting) public payable { greeting = _greeting; require(msg.value == 5, "Need more money"); } }
部署後,Metamask 沒有要任何錢,我知道我錯過了一些重要的事情。我已經附加了部署部分並在反應模板中呼叫了該函式。
謝謝!
我看到你正在使用 React,我也使用 Metamask 做了一個類似的項目,我使用了
eth_requestAccounts
,正如你在我的程式碼中看到的那樣,基本上你呼叫簽名者並等到你有一個:await window.ethereum.request({ method: 'eth_requestAccounts' }); const signer = provider.getSigner(); await signer;
然後你需要呼叫與那個簽名者的契約,在我的例子中,我使用了
connect
,像這樣:await contract.connect(signer).deposit(/*arguments*/, {value: ethdeposit});
這就是要提示 Metamask 的內容,您可以在我發送的連結上查看完整的實現。您可以在此處查看有關如何使用 Metamask 提供程序的更多資訊。