nft的所有者存储在哪里?
Where is the owner of an nft is stored?
我知道 nft 是通过智能合约铸造到区块链中的。但是所有者钱包存储在哪里?并且更改所有者还需要额外的智能合约?
每个令牌的所有者地址都存储在其收集合约中。
ERC-721 标准仅定义所有者应该可以通过调用 ownerOf()
函数检索,并将令牌 ID 作为唯一参数传递给它。它没有定义信息的存储方式。
但是许多实现使用 mapping
。例如 OpenZeppelin implementation:
mapping(uint256 => address) private _owners;
function ownerOf(uint256 tokenId) public view virtual override returns (address) {
address owner = _owners[tokenId];
require(owner != address(0), "ERC721: owner query for nonexistent token");
return owner;
}
changing the owner requires additionl smart contract?
假设收集合约遵循标准,它可以通过从所有者(非合约)地址执行任何转移功能来更改代币所有者(即转移代币)。
因此不需要额外的智能合约来转移代币。
我知道 nft 是通过智能合约铸造到区块链中的。但是所有者钱包存储在哪里?并且更改所有者还需要额外的智能合约?
每个令牌的所有者地址都存储在其收集合约中。
ERC-721 标准仅定义所有者应该可以通过调用 ownerOf()
函数检索,并将令牌 ID 作为唯一参数传递给它。它没有定义信息的存储方式。
但是许多实现使用 mapping
。例如 OpenZeppelin implementation:
mapping(uint256 => address) private _owners;
function ownerOf(uint256 tokenId) public view virtual override returns (address) {
address owner = _owners[tokenId];
require(owner != address(0), "ERC721: owner query for nonexistent token");
return owner;
}
changing the owner requires additionl smart contract?
假设收集合约遵循标准,它可以通过从所有者(非合约)地址执行任何转移功能来更改代币所有者(即转移代币)。
因此不需要额外的智能合约来转移代币。