Web3js

你如何添加礦工地址以便它可以鑄造代幣?

  • January 12, 2022

我有我正在製作的 ERC721。

function mint(address to, uint256 tokenId) public onlyMinter returns (bool) {
   _mint(to, tokenId);
   return true;
}

我怎樣才能添加地址以便它能夠鑄幣?我可以簡單地編寫一個呼叫 addMinter(address) 的函式嗎?還是我必須在建構子中這樣做?

鑄幣者可以呼叫addMinter

像這樣的東西應該​​工作

token.methods.addMinter(newMinterAddress)
   .send({ from: existingMinter })

這不是 ERC-721 的內置功能,您需要使用擴展。

Xcert,0xcert 的合約有這個功能。

https://github.com/0xcert/framework/blob/master/packages/0xcert-ethereum-xcert-contracts/src/contracts/xcert.sol

這是相關程式碼

 /**
  * @dev Creates a new Xcert.
  * @param _to The address that will own the created Xcert.
  * @param _id The Xcert to be created by the msg.sender.
  * @param _imprint Cryptographic asset imprint.
  */
 function create(
   address _to,
   uint256 _id,
   bytes32 _imprint
 )
   external
   hasAbilities(ABILITY_CREATE_ASSET)
 {
   super._create(_to, _id);
   idToImprint[_id] = _imprint;
 }

並且使用 來跟踪能力Abilitable。您將為這個其他實體設置鑄幣者。

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