--- a/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol +++ b/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol @@ -10,6 +10,7 @@ } contract ContractHelpers is Dummy { + // Selector: contractOwner(address) 5152b14c function contractOwner(address contractAddress) public view @@ -21,6 +22,7 @@ return 0x0000000000000000000000000000000000000000; } + // Selector: sponsoringEnabled(address) 6027dc61 function sponsoringEnabled(address contractAddress) public view @@ -32,6 +34,7 @@ return false; } + // Selector: toggleSponsoring(address,bool) fcac6d86 function toggleSponsoring(address contractAddress, bool enabled) public { require(false, stub_error); contractAddress; @@ -39,6 +42,7 @@ dummy = 0; } + // Selector: setSponsoringRateLimit(address,uint32) 77b6c908 function setSponsoringRateLimit(address contractAddress, uint32 rateLimit) public { @@ -48,6 +52,7 @@ dummy = 0; } + // Selector: allowed(address,address) 5c658165 function allowed(address contractAddress, address user) public view @@ -60,6 +65,7 @@ return false; } + // Selector: allowlistEnabled(address) c772ef6c function allowlistEnabled(address contractAddress) public view @@ -71,6 +77,7 @@ return false; } + // Selector: toggleAllowlist(address,bool) 36de20f5 function toggleAllowlist(address contractAddress, bool enabled) public { require(false, stub_error); contractAddress; @@ -78,6 +85,7 @@ dummy = 0; } + // Selector: toggleAllowed(address,address,bool) 4706cc1c function toggleAllowed( address contractAddress, address user, --- a/pallets/nft/src/eth/stubs/UniqueFungible.sol +++ b/pallets/nft/src/eth/stubs/UniqueFungible.sol @@ -21,12 +21,14 @@ // Inline contract InlineNameSymbol is Dummy { + // Selector: name() 06fdde03 function name() public view returns (string memory) { require(false, stub_error); dummy; return ""; } + // Selector: symbol() 95d89b41 function symbol() public view returns (string memory) { require(false, stub_error); dummy; @@ -36,6 +38,7 @@ // Inline contract InlineTotalSupply is Dummy { + // Selector: totalSupply() 18160ddd function totalSupply() public view returns (uint256) { require(false, stub_error); dummy; @@ -44,6 +47,7 @@ } contract ERC165 is Dummy { + // Selector: supportsInterface(bytes4) 01ffc9a7 function supportsInterface(uint32 interfaceId) public view returns (bool) { require(false, stub_error); interfaceId; @@ -53,12 +57,14 @@ } contract ERC20 is Dummy, InlineNameSymbol, InlineTotalSupply, ERC20Events { + // Selector: decimals() 313ce567 function decimals() public view returns (uint8) { require(false, stub_error); dummy; return 0; } + // Selector: balanceOf(address) 70a08231 function balanceOf(address owner) public view returns (uint256) { require(false, stub_error); owner; @@ -66,6 +72,7 @@ return 0; } + // Selector: transfer(address,uint256) a9059cbb function transfer(address to, uint256 amount) public returns (bool) { require(false, stub_error); to; @@ -74,6 +81,7 @@ return false; } + // Selector: transferFrom(address,address,uint256) 23b872dd function transferFrom( address from, address to, @@ -87,6 +95,7 @@ return false; } + // Selector: approve(address,uint256) 095ea7b3 function approve(address spender, uint256 amount) public returns (bool) { require(false, stub_error); spender; @@ -95,6 +104,7 @@ return false; } + // Selector: allowance(address,address) dd62ed3e function allowance(address owner, address spender) public view --- a/pallets/nft/src/eth/stubs/UniqueNFT.sol +++ b/pallets/nft/src/eth/stubs/UniqueNFT.sol @@ -41,12 +41,14 @@ // Inline contract InlineNameSymbol is Dummy { + // Selector: name() 06fdde03 function name() public view returns (string memory) { require(false, stub_error); dummy; return ""; } + // Selector: symbol() 95d89b41 function symbol() public view returns (string memory) { require(false, stub_error); dummy; @@ -56,6 +58,7 @@ // Inline contract InlineTotalSupply is Dummy { + // Selector: totalSupply() 18160ddd function totalSupply() public view returns (uint256) { require(false, stub_error); dummy; @@ -64,6 +67,7 @@ } contract ERC165 is Dummy { + // Selector: supportsInterface(bytes4) 01ffc9a7 function supportsInterface(uint32 interfaceId) public view returns (bool) { require(false, stub_error); interfaceId; @@ -73,6 +77,7 @@ } contract ERC721 is Dummy, ERC165, ERC721Events { + // Selector: balanceOf(address) 70a08231 function balanceOf(address owner) public view returns (uint256) { require(false, stub_error); owner; @@ -80,6 +85,7 @@ return 0; } + // Selector: ownerOf(uint256) 6352211e function ownerOf(uint256 tokenId) public view returns (address) { require(false, stub_error); tokenId; @@ -87,6 +93,7 @@ return 0x0000000000000000000000000000000000000000; } + // Selector: safeTransferFromWithData(address,address,uint256,bytes) 60a11672 function safeTransferFromWithData( address from, address to, @@ -101,6 +108,7 @@ dummy = 0; } + // Selector: safeTransferFrom(address,address,uint256) 42842e0e function safeTransferFrom( address from, address to, @@ -113,6 +121,7 @@ dummy = 0; } + // Selector: transferFrom(address,address,uint256) 23b872dd function transferFrom( address from, address to, @@ -125,6 +134,7 @@ dummy = 0; } + // Selector: approve(address,uint256) 095ea7b3 function approve(address approved, uint256 tokenId) public { require(false, stub_error); approved; @@ -132,6 +142,7 @@ dummy = 0; } + // Selector: setApprovalForAll(address,bool) a22cb465 function setApprovalForAll(address operator, bool approved) public { require(false, stub_error); operator; @@ -139,6 +150,7 @@ dummy = 0; } + // Selector: getApproved(uint256) 081812fc function getApproved(uint256 tokenId) public view returns (address) { require(false, stub_error); tokenId; @@ -146,6 +158,7 @@ return 0x0000000000000000000000000000000000000000; } + // Selector: isApprovedForAll(address,address) e985e9c5 function isApprovedForAll(address owner, address operator) public view @@ -160,6 +173,7 @@ } contract ERC721Burnable is Dummy { + // Selector: burn(uint256) 42966c68 function burn(uint256 tokenId) public { require(false, stub_error); tokenId; @@ -168,6 +182,7 @@ } contract ERC721Enumerable is Dummy, InlineTotalSupply { + // Selector: tokenByIndex(uint256) 4f6ccce7 function tokenByIndex(uint256 index) public view returns (uint256) { require(false, stub_error); index; @@ -175,6 +190,7 @@ return 0; } + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 function tokenOfOwnerByIndex(address owner, uint256 index) public view @@ -189,6 +205,7 @@ } contract ERC721Metadata is Dummy, InlineNameSymbol { + // Selector: tokenURI(uint256) c87b56dd function tokenURI(uint256 tokenId) public view returns (string memory) { require(false, stub_error); tokenId; @@ -198,12 +215,14 @@ } contract ERC721Mintable is Dummy, ERC721MintableEvents { + // Selector: mintingFinished() 05d2035b function mintingFinished() public view returns (bool) { require(false, stub_error); dummy; return false; } + // Selector: mint(address,uint256) 40c10f19 function mint(address to, uint256 tokenId) public returns (bool) { require(false, stub_error); to; @@ -212,6 +231,7 @@ return false; } + // Selector: mintWithTokenURI(address,uint256,string) 50bb4e7f function mintWithTokenURI( address to, uint256 tokenId, @@ -225,6 +245,7 @@ return false; } + // Selector: finishMinting() 7d64bcb4 function finishMinting() public returns (bool) { require(false, stub_error); dummy = 0; @@ -233,6 +254,7 @@ } contract ERC721UniqueExtensions is Dummy { + // Selector: transfer(address,uint256) a9059cbb function transfer(address to, uint256 tokenId) public { require(false, stub_error); to; @@ -240,6 +262,7 @@ dummy = 0; } + // Selector: nextTokenId() 75794a3c function nextTokenId() public view returns (uint256) { require(false, stub_error); dummy; --- a/tests/src/eth/api/ContractHelpers.sol +++ b/tests/src/eth/api/ContractHelpers.sol @@ -9,33 +9,41 @@ } interface ContractHelpers is Dummy { + // Selector: contractOwner(address) 5152b14c function contractOwner(address contractAddress) external view returns (address); + // Selector: sponsoringEnabled(address) 6027dc61 function sponsoringEnabled(address contractAddress) external view returns (bool); + // Selector: toggleSponsoring(address,bool) fcac6d86 function toggleSponsoring(address contractAddress, bool enabled) external; + // Selector: setSponsoringRateLimit(address,uint32) 77b6c908 function setSponsoringRateLimit(address contractAddress, uint32 rateLimit) external; + // Selector: allowed(address,address) 5c658165 function allowed(address contractAddress, address user) external view returns (bool); + // Selector: allowlistEnabled(address) c772ef6c function allowlistEnabled(address contractAddress) external view returns (bool); + // Selector: toggleAllowlist(address,bool) 36de20f5 function toggleAllowlist(address contractAddress, bool enabled) external; + // Selector: toggleAllowed(address,address,bool) 4706cc1c function toggleAllowed( address contractAddress, address user, --- a/tests/src/eth/api/UniqueFungible.sol +++ b/tests/src/eth/api/UniqueFungible.sol @@ -20,35 +20,45 @@ // Inline interface InlineNameSymbol is Dummy { + // Selector: name() 06fdde03 function name() external view returns (string memory); + // Selector: symbol() 95d89b41 function symbol() external view returns (string memory); } // Inline interface InlineTotalSupply is Dummy { + // Selector: totalSupply() 18160ddd function totalSupply() external view returns (uint256); } interface ERC165 is Dummy { + // Selector: supportsInterface(bytes4) 01ffc9a7 function supportsInterface(uint32 interfaceId) external view returns (bool); } interface ERC20 is Dummy, InlineNameSymbol, InlineTotalSupply, ERC20Events { + // Selector: decimals() 313ce567 function decimals() external view returns (uint8); + // Selector: balanceOf(address) 70a08231 function balanceOf(address owner) external view returns (uint256); + // Selector: transfer(address,uint256) a9059cbb function transfer(address to, uint256 amount) external returns (bool); + // Selector: transferFrom(address,address,uint256) 23b872dd function transferFrom( address from, address to, uint256 amount ) external returns (bool); + // Selector: approve(address,uint256) 095ea7b3 function approve(address spender, uint256 amount) external returns (bool); + // Selector: allowance(address,address) dd62ed3e function allowance(address owner, address spender) external view --- a/tests/src/eth/api/UniqueNFT.sol +++ b/tests/src/eth/api/UniqueNFT.sol @@ -40,25 +40,32 @@ // Inline interface InlineNameSymbol is Dummy { + // Selector: name() 06fdde03 function name() external view returns (string memory); + // Selector: symbol() 95d89b41 function symbol() external view returns (string memory); } // Inline interface InlineTotalSupply is Dummy { + // Selector: totalSupply() 18160ddd function totalSupply() external view returns (uint256); } interface ERC165 is Dummy { + // Selector: supportsInterface(bytes4) 01ffc9a7 function supportsInterface(uint32 interfaceId) external view returns (bool); } interface ERC721 is Dummy, ERC165, ERC721Events { + // Selector: balanceOf(address) 70a08231 function balanceOf(address owner) external view returns (uint256); + // Selector: ownerOf(uint256) 6352211e function ownerOf(uint256 tokenId) external view returns (address); + // Selector: safeTransferFromWithData(address,address,uint256,bytes) 60a11672 function safeTransferFromWithData( address from, address to, @@ -66,24 +73,30 @@ bytes memory data ) external; + // Selector: safeTransferFrom(address,address,uint256) 42842e0e function safeTransferFrom( address from, address to, uint256 tokenId ) external; + // Selector: transferFrom(address,address,uint256) 23b872dd function transferFrom( address from, address to, uint256 tokenId ) external; + // Selector: approve(address,uint256) 095ea7b3 function approve(address approved, uint256 tokenId) external; + // Selector: setApprovalForAll(address,bool) a22cb465 function setApprovalForAll(address operator, bool approved) external; + // Selector: getApproved(uint256) 081812fc function getApproved(uint256 tokenId) external view returns (address); + // Selector: isApprovedForAll(address,address) e985e9c5 function isApprovedForAll(address owner, address operator) external view @@ -91,12 +104,15 @@ } interface ERC721Burnable is Dummy { + // Selector: burn(uint256) 42966c68 function burn(uint256 tokenId) external; } interface ERC721Enumerable is Dummy, InlineTotalSupply { + // Selector: tokenByIndex(uint256) 4f6ccce7 function tokenByIndex(uint256 index) external view returns (uint256); + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 function tokenOfOwnerByIndex(address owner, uint256 index) external view @@ -104,26 +120,33 @@ } interface ERC721Metadata is Dummy, InlineNameSymbol { + // Selector: tokenURI(uint256) c87b56dd function tokenURI(uint256 tokenId) external view returns (string memory); } interface ERC721Mintable is Dummy, ERC721MintableEvents { + // Selector: mintingFinished() 05d2035b function mintingFinished() external view returns (bool); + // Selector: mint(address,uint256) 40c10f19 function mint(address to, uint256 tokenId) external returns (bool); + // Selector: mintWithTokenURI(address,uint256,string) 50bb4e7f function mintWithTokenURI( address to, uint256 tokenId, string memory tokenUri ) external returns (bool); + // Selector: finishMinting() 7d64bcb4 function finishMinting() external returns (bool); } interface ERC721UniqueExtensions is Dummy { + // Selector: transfer(address,uint256) a9059cbb function transfer(address to, uint256 tokenId) external; + // Selector: nextTokenId() 75794a3c function nextTokenId() external view returns (uint256); // Selector: setVariableMetadata(uint256,bytes) d4eac26d