我创建了一个部署在 ropston 网络上的 ERC-721 合约。使用合约我正在创建 NFT,它完全运行良好。
现在,对于转账部分,我需要获取任何 NFT 的 tokenID 并将其转账到其他地址,但每当我从 etherscan 或使用 web3 获取交易详细信息时,我都无法获取 tokenID。
我想将 tokenID 存储在数据库中,以便在转移到其他地址时可以使用它。
我已经圈出了上图中所需的确切 tokenID。
我正在使用以下代码:
window.ethereum
.request({
method: 'eth_sendTransaction',
params: [
{
from: fromAddress,
to: contractAddress,
gas: '50000',
data: nftContract.methods.transferFrom(fromAddress, toAddress, tokenNumber).encodeABI()
},
],
})
Run Code Online (Sandbox Code Playgroud)
我只想在NFT创建时获取tokenID并将其存储到数据库中以供参考并执行业务逻辑。
function mintNFT(address recipient, string memory tokenURI)
public onlyOwner
returns (uint256)
{
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
Run Code Online (Sandbox Code Playgroud)
以上是负责创建 NFT 的 Solidity 函数。