【发布时间】:2021-08-20 11:49:27
【问题描述】:
我创建了一个部署在 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()
},
],
})
我只想在创建 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;
}
上面是负责创建 NFT 的 solidity 函数。
【问题讨论】:
-
请编辑您的问题并显示您转移令牌的 sn-p - 如果您这样做,包括发出
Transfer()事件......另外,只是为了确认,您的问题是 Etherscan 没有t 在交易详情中显示 TokenID?如果这不是您的问题,请澄清。 -
@PetrHejda 请立即查看
-
感谢您的更新。我的意思是转移的 Solidity 代码 - 抱歉我不清楚。
-
solidity 使用的是标准的传输定义,但我想我的问题更多在于铸币部分,我可以在新创建的 NFT 上获取 tokenID。我也在我的问题中添加了这一点。
-
现在我需要获取 newItemID 并将其存储到我的数据库中,作为存储对我的 NFT 的引用的一部分,以便稍后将任何点转移到其他地址。