Nft
如何使智能合約功能只能從應用程序訪問?
假設我想製作具有可變級別的遊戲 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 中使用私鑰進行交易?