Nft

如何使智能合約功能只能從應用程序訪問?

  • February 13, 2022

假設我想製作具有可變級別的遊戲 NFT。

我有使用該 NFT 的遊戲,當我們玩遊戲時,NFT 會升級。

我希望 NFT 只能從遊戲中升級。

據我所知,如果我們創建可以更改級別變數的公共函式,則可以通過 NFT 的所有者(購買 NFT 的人)訪問它。

我希望該功能只能由應用程序訪問,因此擁有 NFT 的帳戶無法在資源管理器上自己編輯關卡。

如何創建具有這樣訪問權限的函式,還是我的邏輯錯誤?

在其他執行此類操作時需要使用 web3JS 或 etherJS

您的智能合約功能將如下所示:

function setEdit( /* pass in params to edit */) public {
  require(msg.sender == owner);
  /* perform operation  */
}

然後您可以將所有者的私鑰儲存在某處,並

在您想要升級的任何時候使用https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#sendsignedtransaction簽署和發送交易。關於如何使用私鑰發送 tx 的其他一些幫助:如何在 web3 中使用私鑰進行交易?

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