Arbitrum Stylus logo

Stylus by Example

ERC-721

Any contract that follows the ERC-721 standard is an ERC-721 token.

Here is the interface for ERC-721.

1interface ERC721 {
2    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
3    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
4    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
5
6    function balanceOf(address _owner) external view returns (uint256);
7    function ownerOf(uint256 _tokenId) external view returns (address);
8    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
9    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
10    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
11    function approve(address _approved, uint256 _tokenId) external payable;
12    function setApprovalForAll(address _operator, bool _approved) external;
13    function getApproved(uint256 _tokenId) external view returns (address);
14    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
15}
1interface ERC721 {
2    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
3    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
4    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
5
6    function balanceOf(address _owner) external view returns (uint256);
7    function ownerOf(uint256 _tokenId) external view returns (address);
8    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
9    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
10    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
11    function approve(address _approved, uint256 _tokenId) external payable;
12    function setApprovalForAll(address _operator, bool _approved) external;
13    function getApproved(uint256 _tokenId) external view returns (address);
14    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
15}

Example implementation of an ERC-721 token contract written in Rust.

src/erc721.rs

1Loading...
1Loading...

src/lib.rs

1Loading...
1Loading...

Cargo.toml

1Loading...
1Loading...

src/main.rs

1Loading...
1Loading...