feat: Soulbound Token implement with ERC721

This commit is contained in:
snsd0805 2023-06-04 20:34:12 +08:00
parent 9bd872d7d4
commit 03d708d94f
Signed by: snsd0805
GPG Key ID: 569349933C77A854
2 changed files with 2137 additions and 747 deletions

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,12 @@ contract SoulboundToken is ERC721 {
return newItemId; return newItemId;
} }
function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual override {
require(from == address(0) || to == address(0), "SOULBOUND: Non-Transferable.");
require(balanceOf(to)==0, "SOULBOUND: Everyone should only have 1 SBT.");
super._beforeTokenTransfer(from, to, firstTokenId, batchSize);
}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
_requireMinted(tokenId); _requireMinted(tokenId);