--- a/pallets/fungible/src/stubs/UniqueFungible.sol +++ b/pallets/fungible/src/stubs/UniqueFungible.sol @@ -3,7 +3,17 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs contract Dummy { uint8 dummy; string stub_error = "this contract is implemented in native"; @@ -21,8 +31,122 @@ } } +<<<<<<< HEAD /// @title A contract that allows you to work with collections. /// @dev the ERC-165 identifier for this interface is 0xffe4da23 +======= +// Inline +contract ERC20Events { + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval( + address indexed owner, + address indexed spender, + uint256 value + ); +} + +<<<<<<< HEAD +// Selector: 79cc6790 +contract ERC20UniqueExtensions is Dummy, ERC165 { + // Selector: burnFrom(address,uint256) 79cc6790 + function burnFrom(address from, uint256 amount) public returns (bool) { + require(false, stub_error); + from; + amount; + dummy = 0; + return false; + } +} + +// Selector: 942e8b22 +contract ERC20 is Dummy, ERC165, ERC20Events { + // 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; + return ""; + } + + // Selector: totalSupply() 18160ddd + function totalSupply() public view returns (uint256) { + require(false, stub_error); + dummy; + return 0; + } + + // 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; + dummy; + return 0; + } + + // Selector: transfer(address,uint256) a9059cbb + function transfer(address to, uint256 amount) public returns (bool) { + require(false, stub_error); + to; + amount; + dummy = 0; + return false; + } + + // Selector: transferFrom(address,address,uint256) 23b872dd + function transferFrom( + address from, + address to, + uint256 amount + ) public returns (bool) { + require(false, stub_error); + from; + to; + amount; + dummy = 0; + return false; + } + + // Selector: approve(address,uint256) 095ea7b3 + function approve(address spender, uint256 amount) public returns (bool) { + require(false, stub_error); + spender; + amount; + dummy = 0; + return false; + } + + // Selector: allowance(address,address) dd62ed3e + function allowance(address owner, address spender) + public + view + returns (uint256) + { + require(false, stub_error); + owner; + spender; + dummy; + return 0; + } +} + +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +>>>>>>> misk: Update stubs contract Collection is Dummy, ERC165 { /// Set collection property. /// @@ -82,16 +206,45 @@ dummy = 0; } +<<<<<<< HEAD /// Collection sponsorship confirmation. /// /// @dev After setting the sponsor for the collection, it must be confirmed with this function. /// @dev EVM selector for this function is: 0x3c50e97a, /// or in textual repr: confirmCollectionSponsorship() +======= + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() public view returns (bool) { + require(false, stub_error); + dummy; + return false; + } + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a +>>>>>>> misk: Update stubs function confirmCollectionSponsorship() public { require(false, stub_error); dummy = 0; } +<<<<<<< HEAD /// Set limits for the collection. /// @dev Throws error if limit not found. /// @param limit Name of the limit. Valid names: @@ -104,6 +257,39 @@ /// @param value Value of the limit. /// @dev EVM selector for this function is: 0x6a3841db, /// or in textual repr: setCollectionLimit(string,uint32) +======= + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() public { + require(false, stub_error); + dummy = 0; + } + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() public view returns (Tuple0 memory) { + require(false, stub_error); + dummy; + return Tuple0(0x0000000000000000000000000000000000000000, 0); + } + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db +>>>>>>> misk: Update stubs function setCollectionLimit(string memory limit, uint32 value) public { require(false, stub_error); limit; --- a/pallets/nonfungible/src/stubs/UniqueNFT.sol +++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol @@ -3,7 +3,23 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + uint256 field_0; + string field_1; +} + +// Anonymous struct +struct Tuple1 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs contract Dummy { uint8 dummy; string stub_error = "this contract is implemented in native"; @@ -465,8 +481,55 @@ } } +<<<<<<< HEAD /// @title Unique extensions for ERC721. /// @dev the ERC-165 identifier for this interface is 0xd74d154f +======= +<<<<<<< HEAD +// Selector: 780e9d63 +contract ERC721Enumerable is Dummy, ERC165 { + // @notice Enumerate valid NFTs + // @param index A counter less than `totalSupply()` + // @return The token identifier for the `index`th NFT, + // (sort order not specified) + // + // Selector: tokenByIndex(uint256) 4f6ccce7 + function tokenByIndex(uint256 index) public view returns (uint256) { + require(false, stub_error); + index; + dummy; + return 0; + } + + // @dev Not implemented + // + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 + function tokenOfOwnerByIndex(address owner, uint256 index) + public + view + returns (uint256) + { + require(false, stub_error); + owner; + index; + dummy; + return 0; + } + + // @notice Count NFTs tracked by this contract + // @return A count of valid NFTs tracked by this contract, where each one of + // them has an assigned and queryable owner not equal to the zero address + // + // Selector: totalSupply() 18160ddd + function totalSupply() public view returns (uint256) { + require(false, stub_error); + dummy; + return 0; + } +} + +// Selector: d74d154f +>>>>>>> misk: Update stubs contract ERC721UniqueExtensions is Dummy, ERC165 { /// @notice Transfer ownership of an NFT /// @dev Throws unless `msg.sender` is the current owner. Throws if `to` @@ -543,11 +606,33 @@ } } +<<<<<<< HEAD /// @dev anonymous struct struct Tuple8 { uint256 field_0; string field_1; } +======= +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +contract Collection is Dummy, ERC165 { + // Set collection property. + // + // @param key Property key. + // @param value Propery value. + // + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + public + { + require(false, stub_error); + key; + value; + dummy = 0; + } +>>>>>>> misk: Update stubs /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 @@ -578,7 +663,92 @@ owner; index; dummy; +<<<<<<< HEAD return 0; +======= + return hex""; + } + + // Set the sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() public view returns (bool) { + require(false, stub_error); + dummy; + return false; + } + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() public { + require(false, stub_error); + dummy = 0; + } + + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() public { + require(false, stub_error); + dummy = 0; + } + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() public view returns (Tuple1 memory) { + require(false, stub_error); + dummy; + return Tuple1(0x0000000000000000000000000000000000000000, 0); + } + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) public { + require(false, stub_error); + limit; + value; + dummy = 0; +>>>>>>> misk: Update stubs } /// @notice Count NFTs tracked by this contract --- a/pallets/refungible/src/stubs/UniqueRefungible.sol +++ b/pallets/refungible/src/stubs/UniqueRefungible.sol @@ -3,7 +3,23 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + uint256 field_0; + string field_1; +} + +// Anonymous struct +struct Tuple1 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs contract Dummy { uint8 dummy; string stub_error = "this contract is implemented in native"; @@ -465,8 +481,55 @@ } } +<<<<<<< HEAD /// @title Unique extensions for ERC721. /// @dev the ERC-165 identifier for this interface is 0x7c3bef89 +======= +<<<<<<< HEAD +// Selector: 780e9d63 +contract ERC721Enumerable is Dummy, ERC165 { + // @notice Enumerate valid RFTs + // @param index A counter less than `totalSupply()` + // @return The token identifier for the `index`th NFT, + // (sort order not specified) + // + // Selector: tokenByIndex(uint256) 4f6ccce7 + function tokenByIndex(uint256 index) public view returns (uint256) { + require(false, stub_error); + index; + dummy; + return 0; + } + + // Not implemented + // + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 + function tokenOfOwnerByIndex(address owner, uint256 index) + public + view + returns (uint256) + { + require(false, stub_error); + owner; + index; + dummy; + return 0; + } + + // @notice Count RFTs tracked by this contract + // @return A count of valid RFTs tracked by this contract, where each one of + // them has an assigned and queryable owner not equal to the zero address + // + // Selector: totalSupply() 18160ddd + function totalSupply() public view returns (uint256) { + require(false, stub_error); + dummy; + return 0; + } +} + +// Selector: 7c3bef89 +>>>>>>> misk: Update stubs contract ERC721UniqueExtensions is Dummy, ERC165 { /// @notice Transfer ownership of an RFT /// @dev Throws unless `msg.sender` is the current owner. Throws if `to` @@ -557,11 +620,33 @@ } } +<<<<<<< HEAD /// @dev anonymous struct struct Tuple8 { uint256 field_0; string field_1; } +======= +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +contract Collection is Dummy, ERC165 { + // Set collection property. + // + // @param key Property key. + // @param value Propery value. + // + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + public + { + require(false, stub_error); + key; + value; + dummy = 0; + } +>>>>>>> misk: Update stubs /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 @@ -592,7 +677,92 @@ owner; index; dummy; +<<<<<<< HEAD return 0; +======= + return hex""; + } + + // Set the sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) public { + require(false, stub_error); + sponsor; + dummy = 0; + } + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() public view returns (bool) { + require(false, stub_error); + dummy; + return false; + } + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() public { + require(false, stub_error); + dummy = 0; + } + + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() public { + require(false, stub_error); + dummy = 0; + } + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() public view returns (Tuple1 memory) { + require(false, stub_error); + dummy; + return Tuple1(0x0000000000000000000000000000000000000000, 0); + } + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) public { + require(false, stub_error); + limit; + value; + dummy = 0; +>>>>>>> misk: Update stubs } /// @notice Count RFTs tracked by this contract --- a/tests/src/eth/api/UniqueFungible.sol +++ b/tests/src/eth/api/UniqueFungible.sol @@ -3,7 +3,17 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs interface Dummy { } @@ -12,8 +22,69 @@ function supportsInterface(bytes4 interfaceID) external view returns (bool); } +<<<<<<< HEAD /// @title A contract that allows you to work with collections. /// @dev the ERC-165 identifier for this interface is 0xffe4da23 +======= +// Inline +interface ERC20Events { + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval( + address indexed owner, + address indexed spender, + uint256 value + ); +} + +<<<<<<< HEAD +// Selector: 79cc6790 +interface ERC20UniqueExtensions is Dummy, ERC165 { + // Selector: burnFrom(address,uint256) 79cc6790 + function burnFrom(address from, uint256 amount) external returns (bool); +} + +// Selector: 942e8b22 +interface ERC20 is Dummy, ERC165, ERC20Events { + // Selector: name() 06fdde03 + function name() external view returns (string memory); + + // Selector: symbol() 95d89b41 + function symbol() external view returns (string memory); + + // Selector: totalSupply() 18160ddd + function totalSupply() external view returns (uint256); + + // 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 + returns (uint256); +} + +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +>>>>>>> misk: Update stubs interface Collection is Dummy, ERC165 { /// Set collection property. /// @@ -53,6 +124,7 @@ /// or in textual repr: setCollectionSponsor(address) function setCollectionSponsor(address sponsor) external; +<<<<<<< HEAD /// Collection sponsorship confirmation. /// /// @dev After setting the sponsor for the collection, it must be confirmed with this function. @@ -72,6 +144,51 @@ /// @param value Value of the limit. /// @dev EVM selector for this function is: 0x6a3841db, /// or in textual repr: setCollectionLimit(string,uint32) +======= + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) external; + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() external view returns (bool); + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() external; + + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() external; + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() external view returns (Tuple0 memory); + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db +>>>>>>> misk: Update stubs function setCollectionLimit(string memory limit, uint32 value) external; /// Set limits for the collection. --- a/tests/src/eth/api/UniqueNFT.sol +++ b/tests/src/eth/api/UniqueNFT.sol @@ -3,7 +3,23 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + uint256 field_0; + string field_1; +} + +// Anonymous struct +struct Tuple1 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs interface Dummy { } @@ -305,8 +321,39 @@ function finishMinting() external returns (bool); } +<<<<<<< HEAD /// @title Unique extensions for ERC721. /// @dev the ERC-165 identifier for this interface is 0xd74d154f +======= +<<<<<<< HEAD +// Selector: 780e9d63 +interface ERC721Enumerable is Dummy, ERC165 { + // @notice Enumerate valid NFTs + // @param index A counter less than `totalSupply()` + // @return The token identifier for the `index`th NFT, + // (sort order not specified) + // + // Selector: tokenByIndex(uint256) 4f6ccce7 + function tokenByIndex(uint256 index) external view returns (uint256); + + // @dev Not implemented + // + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 + function tokenOfOwnerByIndex(address owner, uint256 index) + external + view + returns (uint256); + + // @notice Count NFTs tracked by this contract + // @return A count of valid NFTs tracked by this contract, where each one of + // them has an assigned and queryable owner not equal to the zero address + // + // Selector: totalSupply() 18160ddd + function totalSupply() external view returns (uint256); +} + +// Selector: d74d154f +>>>>>>> misk: Update stubs interface ERC721UniqueExtensions is Dummy, ERC165 { /// @notice Transfer ownership of an NFT /// @dev Throws unless `msg.sender` is the current owner. Throws if `to` @@ -355,11 +402,27 @@ returns (bool); } +<<<<<<< HEAD /// @dev anonymous struct struct Tuple8 { uint256 field_0; string field_1; } +======= +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +interface Collection is Dummy, ERC165 { + // Set collection property. + // + // @param key Property key. + // @param value Propery value. + // + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + external; +>>>>>>> misk: Update stubs /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 @@ -379,7 +442,87 @@ function tokenOfOwnerByIndex(address owner, uint256 index) external view +<<<<<<< HEAD returns (uint256); +======= + returns (bytes memory); + + // Set the sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) external; + + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) external; + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() external view returns (bool); + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() external; + + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() external; + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() external view returns (Tuple1 memory); + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) external; + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "ownerCanTransfer", + // "ownerCanDestroy", + // "transfersEnabled" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,bool) 993b7fba + function setCollectionLimit(string memory limit, bool value) external; + + // Get contract address. + // + // Selector: contractAddress() f6b4dfb4 + function contractAddress() external view returns (address); + + // Add collection admin by substrate address. + // @param new_admin Substrate administrator address. + // + // Selector: addCollectionAdminSubstrate(uint256) 5730062b + function addCollectionAdminSubstrate(uint256 newAdmin) external; +>>>>>>> misk: Update stubs /// @notice Count NFTs tracked by this contract /// @return A count of valid NFTs tracked by this contract, where each one of --- a/tests/src/eth/api/UniqueRefungible.sol +++ b/tests/src/eth/api/UniqueRefungible.sol @@ -3,7 +3,23 @@ pragma solidity >=0.8.0 <0.9.0; +<<<<<<< HEAD /// @dev common stubs holder +======= +// Anonymous struct +struct Tuple0 { + uint256 field_0; + string field_1; +} + +// Anonymous struct +struct Tuple1 { + address field_0; + uint256 field_1; +} + +// Common stubs holder +>>>>>>> misk: Update stubs interface Dummy { } @@ -305,8 +321,39 @@ function finishMinting() external returns (bool); } +<<<<<<< HEAD /// @title Unique extensions for ERC721. /// @dev the ERC-165 identifier for this interface is 0x7c3bef89 +======= +<<<<<<< HEAD +// Selector: 780e9d63 +interface ERC721Enumerable is Dummy, ERC165 { + // @notice Enumerate valid RFTs + // @param index A counter less than `totalSupply()` + // @return The token identifier for the `index`th NFT, + // (sort order not specified) + // + // Selector: tokenByIndex(uint256) 4f6ccce7 + function tokenByIndex(uint256 index) external view returns (uint256); + + // Not implemented + // + // Selector: tokenOfOwnerByIndex(address,uint256) 2f745c59 + function tokenOfOwnerByIndex(address owner, uint256 index) + external + view + returns (uint256); + + // @notice Count RFTs tracked by this contract + // @return A count of valid RFTs tracked by this contract, where each one of + // them has an assigned and queryable owner not equal to the zero address + // + // Selector: totalSupply() 18160ddd + function totalSupply() external view returns (uint256); +} + +// Selector: 7c3bef89 +>>>>>>> misk: Update stubs interface ERC721UniqueExtensions is Dummy, ERC165 { /// @notice Transfer ownership of an RFT /// @dev Throws unless `msg.sender` is the current owner. Throws if `to` @@ -367,11 +414,27 @@ returns (address); } +<<<<<<< HEAD /// @dev anonymous struct struct Tuple8 { uint256 field_0; string field_1; } +======= +// Selector: ffe4da23 +======= +// Selector: 765e2fae +>>>>>>> misk: Update stubs +interface Collection is Dummy, ERC165 { + // Set collection property. + // + // @param key Property key. + // @param value Propery value. + // + // Selector: setCollectionProperty(string,bytes) 2f073f66 + function setCollectionProperty(string memory key, bytes memory value) + external; +>>>>>>> misk: Update stubs /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 @@ -391,7 +454,87 @@ function tokenOfOwnerByIndex(address owner, uint256 index) external view +<<<<<<< HEAD returns (uint256); +======= + returns (bytes memory); + + // Set the sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsor(address) 7623402e + function setCollectionSponsor(address sponsor) external; + + // Set the substrate sponsor of the collection. + // + // @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor. + // + // @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract. + // + // Selector: setCollectionSponsorSubstrate(uint256) c74d6751 + function setCollectionSponsorSubstrate(uint256 sponsor) external; + + // Selector: hasCollectionPendingSponsor() 058ac185 + function hasCollectionPendingSponsor() external view returns (bool); + + // Collection sponsorship confirmation. + // + // @dev After setting the sponsor for the collection, it must be confirmed with this function. + // + // Selector: confirmCollectionSponsorship() 3c50e97a + function confirmCollectionSponsorship() external; + + // Remove collection sponsor. + // + // Selector: removeCollectionSponsor() 6e0326a3 + function removeCollectionSponsor() external; + + // Get current sponsor. + // + // @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw. + // + // Selector: getCollectionSponsor() b66bbc14 + function getCollectionSponsor() external view returns (Tuple1 memory); + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "accountTokenOwnershipLimit", + // "sponsoredDataSize", + // "sponsoredDataRateLimit", + // "tokenLimit", + // "sponsorTransferTimeout", + // "sponsorApproveTimeout" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,uint32) 6a3841db + function setCollectionLimit(string memory limit, uint32 value) external; + + // Set limits for the collection. + // @dev Throws error if limit not found. + // @param limit Name of the limit. Valid names: + // "ownerCanTransfer", + // "ownerCanDestroy", + // "transfersEnabled" + // @param value Value of the limit. + // + // Selector: setCollectionLimit(string,bool) 993b7fba + function setCollectionLimit(string memory limit, bool value) external; + + // Get contract address. + // + // Selector: contractAddress() f6b4dfb4 + function contractAddress() external view returns (address); + + // Add collection admin by substrate address. + // @param new_admin Substrate administrator address. + // + // Selector: addCollectionAdminSubstrate(uint256) 5730062b + function addCollectionAdminSubstrate(uint256 newAdmin) external; +>>>>>>> misk: Update stubs /// @notice Count RFTs tracked by this contract /// @return A count of valid RFTs tracked by this contract, where each one of --- a/tests/src/eth/fungibleAbi.json +++ b/tests/src/eth/fungibleAbi.json @@ -170,6 +170,30 @@ }, { "inputs": [], + "name": "getCollectionSponsor", + "outputs": [ + { + "components": [ + { "internalType": "address", "name": "field_0", "type": "address" }, + { "internalType": "uint256", "name": "field_1", "type": "uint256" } + ], + "internalType": "struct Tuple0", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hasCollectionPendingSponsor", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], "name": "name", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", @@ -194,6 +218,13 @@ "type": "function" }, { + "inputs": [], + "name": "removeCollectionSponsor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], @@ -278,6 +309,7 @@ }, { "inputs": [ +<<<<<<< HEAD { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", @@ -290,6 +322,11 @@ { "internalType": "uint256", "name": "newOwner", "type": "uint256" } ], "name": "setOwnerSubstrate", +======= + { "internalType": "uint256", "name": "sponsor", "type": "uint256" } + ], + "name": "setCollectionSponsorSubstrate", +>>>>>>> misk: Update stubs "outputs": [], "stateMutability": "nonpayable", "type": "function" --- a/tests/src/eth/nonFungibleAbi.json +++ b/tests/src/eth/nonFungibleAbi.json @@ -200,6 +200,30 @@ "type": "function" }, { + "inputs": [], + "name": "getCollectionSponsor", + "outputs": [ + { + "components": [ + { "internalType": "address", "name": "field_0", "type": "address" }, + { "internalType": "uint256", "name": "field_1", "type": "uint256" } + ], + "internalType": "struct Tuple1", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hasCollectionPendingSponsor", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } @@ -335,6 +359,13 @@ "type": "function" }, { + "inputs": [], + "name": "removeCollectionSponsor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], @@ -452,6 +483,7 @@ }, { "inputs": [ +<<<<<<< HEAD { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", @@ -464,6 +496,11 @@ { "internalType": "uint256", "name": "newOwner", "type": "uint256" } ], "name": "setOwnerSubstrate", +======= + { "internalType": "uint256", "name": "sponsor", "type": "uint256" } + ], + "name": "setCollectionSponsorSubstrate", +>>>>>>> misk: Update stubs "outputs": [], "stateMutability": "nonpayable", "type": "function" --- a/tests/src/eth/reFungibleAbi.json +++ b/tests/src/eth/reFungibleAbi.json @@ -200,6 +200,30 @@ "type": "function" }, { + "inputs": [], + "name": "getCollectionSponsor", + "outputs": [ + { + "components": [ + { "internalType": "address", "name": "field_0", "type": "address" }, + { "internalType": "uint256", "name": "field_1", "type": "uint256" } + ], + "internalType": "struct Tuple1", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hasCollectionPendingSponsor", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } @@ -335,6 +359,13 @@ "type": "function" }, { + "inputs": [], + "name": "removeCollectionSponsor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], @@ -452,6 +483,7 @@ }, { "inputs": [ +<<<<<<< HEAD { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", @@ -464,6 +496,11 @@ { "internalType": "uint256", "name": "newOwner", "type": "uint256" } ], "name": "setOwnerSubstrate", +======= + { "internalType": "uint256", "name": "sponsor", "type": "uint256" } + ], + "name": "setCollectionSponsorSubstrate", +>>>>>>> misk: Update stubs "outputs": [], "stateMutability": "nonpayable", "type": "function"