簡體   English   中英

如何避免 web3js 中的元掩碼確認

[英]How to avoid metamask confirmation in web3js

我正在嘗試使用 web3js 前端從我的 Solidity 合同中調用 function 。

function playerData(address player) public {      
   gameStatus[player] = false;      
}

webjs 使用以下代碼行調用此方法。

 await myContract.methods.playerData(playerAddress)
                .send(
                    { 
                        from: playerAddress,
                    }
                )

現在執行此行時,元掩碼 window 打開並等待確認。 由於此方法不涉及代幣轉移,我想刪除元掩碼的確認步驟。

請幫助我了解是否有一種方法可以在沒有來自元掩碼的確認彈出窗口的情況下調用此方法。

謝謝

如果您要更改區塊鏈的 state(修改 State 變量),您需要創建一個交易,並且由於交易是由用戶簽名的,因此您需要一個錢包(在本例中為 metamask)來確認交易。

Metamask 是一個錢包,一個簡單的應用程序(無論是瀏覽器擴展還是物理 USB),它允許某人使用私鑰與區塊鏈帳戶進行交互,在這種情況下,您使用錢包來簽署交易並支付汽油費。

如果您不更改任何 State 變量,只需將您的函數設置為viewpure函數,您將不會得到元掩碼的彈出窗口。

現在,如果您確實更改了 State 變量,那么不使用元掩碼的唯一方法是從私鑰獲取 web3js 帳戶 object,然后使用此帳戶手動簽名( 查看此),現在我強烈建議不要這除非你知道你在做什么,因為如果你在某個地方發布你的私鑰,任何人都可以訪問你的帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM