difftreelog
CORE-386 Fix PR
in: master
7 files changed
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -261,13 +261,13 @@
Ok(())
}
- fn set_collection_access(&mut self, caller: caller, mode: string) -> Result<void> {
+ fn set_collection_access(&mut self, caller: caller, mode: uint8) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
self.check_is_owner_or_admin(&caller)
.map_err(dispatch_to_evm::<T>)?;
- self.collection.permissions.access = Some(match mode.as_str() {
- "Normal" => AccessMode::Normal,
- "AllowList" => AccessMode::AllowList,
+ self.collection.permissions.access = Some(match mode {
+ 0 => AccessMode::Normal,
+ 1 => AccessMode::AllowList,
_ => return Err("Not supported access mode".into()),
});
save(self);
pallets/nonfungible/src/lib.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -543,6 +543,7 @@
token_owner,
..
} => {
+ //TODO: исследовать угрозы при публичном минтинге.
if is_token_create && (collection_admin || token_owner) {
return Ok(());
}
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -51,135 +51,6 @@
event MintingFinished();
}
-// Selector: 1248b7d1
-contract Collection is Dummy, ERC165 {
- // Selector: setCollectionProperty(string,bytes) 2f073f66
- function setCollectionProperty(string memory key, bytes memory value)
- public
- {
- require(false, stub_error);
- key;
- value;
- dummy = 0;
- }
-
- // Selector: deleteCollectionProperty(string) 7b7debce
- function deleteCollectionProperty(string memory key) public {
- require(false, stub_error);
- key;
- dummy = 0;
- }
-
- // Throws error if key not found
- //
- // Selector: collectionProperty(string) cf24fd6d
- function collectionProperty(string memory key)
- public
- view
- returns (bytes memory)
- {
- require(false, stub_error);
- key;
- dummy;
- return hex"";
- }
-
- // Selector: setCollectionSponsor(address) 7623402e
- function setCollectionSponsor(address sponsor) public {
- require(false, stub_error);
- sponsor;
- dummy = 0;
- }
-
- // Selector: confirmCollectionSponsorship() 3c50e97a
- function confirmCollectionSponsorship() public {
- require(false, stub_error);
- dummy = 0;
- }
-
- // Selector: setCollectionLimit(string,uint32) 6a3841db
- function setCollectionLimit(string memory limit, uint32 value) public {
- require(false, stub_error);
- limit;
- value;
- dummy = 0;
- }
-
- // Selector: setCollectionLimit(string,bool) 993b7fba
- function setCollectionLimit(string memory limit, bool value) public {
- require(false, stub_error);
- limit;
- value;
- dummy = 0;
- }
-
- // Selector: contractAddress() f6b4dfb4
- function contractAddress() public view returns (address) {
- require(false, stub_error);
- dummy;
- return 0x0000000000000000000000000000000000000000;
- }
-
- // Selector: addCollectionAdmin(address) 92e462c7
- function addCollectionAdmin(address newAdmin) public view {
- require(false, stub_error);
- newAdmin;
- dummy;
- }
-
- // Selector: removeCollectionAdmin(address) fafd7b42
- function removeCollectionAdmin(address admin) public view {
- require(false, stub_error);
- admin;
- dummy;
- }
-
- // Selector: setCollectionNesting(bool) 112d4586
- function setCollectionNesting(bool enable) public {
- require(false, stub_error);
- enable;
- dummy = 0;
- }
-
- // Selector: setCollectionNesting(bool,address[]) 64872396
- function setCollectionNesting(bool enable, address[] memory collections)
- public
- {
- require(false, stub_error);
- enable;
- collections;
- dummy = 0;
- }
-
- // Selector: setCollectionAccess(string) 392172a9
- function setCollectionAccess(string memory mode) public {
- require(false, stub_error);
- mode;
- dummy = 0;
- }
-
- // Selector: addToCollectionAllowList(address) 67844fe6
- function addToCollectionAllowList(address user) public view {
- require(false, stub_error);
- user;
- dummy;
- }
-
- // Selector: removeFromCollectionAllowList(address) 85c51acb
- function removeFromCollectionAllowList(address user) public view {
- require(false, stub_error);
- user;
- dummy;
- }
-
- // Selector: setCollectionMintMode(bool) 00018e84
- function setCollectionMintMode(bool mode) public {
- require(false, stub_error);
- mode;
- dummy = 0;
- }
-}
-
// Selector: 41369377
contract TokenProperties is Dummy, ERC165 {
// Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
@@ -426,6 +297,135 @@
}
}
+// Selector: 6aea9834
+contract Collection is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ public
+ {
+ require(false, stub_error);
+ key;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) public {
+ require(false, stub_error);
+ key;
+ dummy = 0;
+ }
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ public
+ view
+ returns (bytes memory)
+ {
+ require(false, stub_error);
+ key;
+ dummy;
+ return hex"";
+ }
+
+ // Selector: setCollectionSponsor(address) 7623402e
+ function setCollectionSponsor(address sponsor) public {
+ require(false, stub_error);
+ sponsor;
+ dummy = 0;
+ }
+
+ // Selector: confirmCollectionSponsorship() 3c50e97a
+ function confirmCollectionSponsorship() public {
+ require(false, stub_error);
+ dummy = 0;
+ }
+
+ // Selector: setCollectionLimit(string,uint32) 6a3841db
+ function setCollectionLimit(string memory limit, uint32 value) public {
+ require(false, stub_error);
+ limit;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: setCollectionLimit(string,bool) 993b7fba
+ function setCollectionLimit(string memory limit, bool value) public {
+ require(false, stub_error);
+ limit;
+ value;
+ dummy = 0;
+ }
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() public view returns (address) {
+ require(false, stub_error);
+ dummy;
+ return 0x0000000000000000000000000000000000000000;
+ }
+
+ // Selector: addCollectionAdmin(address) 92e462c7
+ function addCollectionAdmin(address newAdmin) public view {
+ require(false, stub_error);
+ newAdmin;
+ dummy;
+ }
+
+ // Selector: removeCollectionAdmin(address) fafd7b42
+ function removeCollectionAdmin(address admin) public view {
+ require(false, stub_error);
+ admin;
+ dummy;
+ }
+
+ // Selector: setCollectionNesting(bool) 112d4586
+ function setCollectionNesting(bool enable) public {
+ require(false, stub_error);
+ enable;
+ dummy = 0;
+ }
+
+ // Selector: setCollectionNesting(bool,address[]) 64872396
+ function setCollectionNesting(bool enable, address[] memory collections)
+ public
+ {
+ require(false, stub_error);
+ enable;
+ collections;
+ dummy = 0;
+ }
+
+ // Selector: setCollectionAccess(uint8) 41835d4c
+ function setCollectionAccess(uint8 mode) public {
+ require(false, stub_error);
+ mode;
+ dummy = 0;
+ }
+
+ // Selector: addToCollectionAllowList(address) 67844fe6
+ function addToCollectionAllowList(address user) public view {
+ require(false, stub_error);
+ user;
+ dummy;
+ }
+
+ // Selector: removeFromCollectionAllowList(address) 85c51acb
+ function removeFromCollectionAllowList(address user) public view {
+ require(false, stub_error);
+ user;
+ dummy;
+ }
+
+ // Selector: setCollectionMintMode(bool) 00018e84
+ function setCollectionMintMode(bool mode) public {
+ require(false, stub_error);
+ mode;
+ dummy = 0;
+ }
+}
+
// Selector: 780e9d63
contract ERC721Enumerable is Dummy, ERC165 {
// Selector: tokenByIndex(uint256) 4f6ccce7
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -42,64 +42,6 @@
event MintingFinished();
}
-// Selector: 1248b7d1
-interface Collection is Dummy, ERC165 {
- // Selector: setCollectionProperty(string,bytes) 2f073f66
- function setCollectionProperty(string memory key, bytes memory value)
- external;
-
- // Selector: deleteCollectionProperty(string) 7b7debce
- function deleteCollectionProperty(string memory key) external;
-
- // Throws error if key not found
- //
- // Selector: collectionProperty(string) cf24fd6d
- function collectionProperty(string memory key)
- external
- view
- returns (bytes memory);
-
- // Selector: setCollectionSponsor(address) 7623402e
- function setCollectionSponsor(address sponsor) external;
-
- // Selector: confirmCollectionSponsorship() 3c50e97a
- function confirmCollectionSponsorship() external;
-
- // Selector: setCollectionLimit(string,uint32) 6a3841db
- function setCollectionLimit(string memory limit, uint32 value) external;
-
- // Selector: setCollectionLimit(string,bool) 993b7fba
- function setCollectionLimit(string memory limit, bool value) external;
-
- // Selector: contractAddress() f6b4dfb4
- function contractAddress() external view returns (address);
-
- // Selector: addCollectionAdmin(address) 92e462c7
- function addCollectionAdmin(address newAdmin) external view;
-
- // Selector: removeCollectionAdmin(address) fafd7b42
- function removeCollectionAdmin(address admin) external view;
-
- // Selector: setCollectionNesting(bool) 112d4586
- function setCollectionNesting(bool enable) external;
-
- // Selector: setCollectionNesting(bool,address[]) 64872396
- function setCollectionNesting(bool enable, address[] memory collections)
- external;
-
- // Selector: setCollectionAccess(string) 392172a9
- function setCollectionAccess(string memory mode) external;
-
- // Selector: addToCollectionAllowList(address) 67844fe6
- function addToCollectionAllowList(address user) external view;
-
- // Selector: removeFromCollectionAllowList(address) 85c51acb
- function removeFromCollectionAllowList(address user) external view;
-
- // Selector: setCollectionMintMode(bool) 00018e84
- function setCollectionMintMode(bool mode) external;
-}
-
// Selector: 41369377
interface TokenProperties is Dummy, ERC165 {
// Selector: setTokenPropertyPermission(string,bool,bool,bool) 222d97fa
@@ -232,6 +174,64 @@
function finishMinting() external returns (bool);
}
+// Selector: 6aea9834
+interface Collection is Dummy, ERC165 {
+ // Selector: setCollectionProperty(string,bytes) 2f073f66
+ function setCollectionProperty(string memory key, bytes memory value)
+ external;
+
+ // Selector: deleteCollectionProperty(string) 7b7debce
+ function deleteCollectionProperty(string memory key) external;
+
+ // Throws error if key not found
+ //
+ // Selector: collectionProperty(string) cf24fd6d
+ function collectionProperty(string memory key)
+ external
+ view
+ returns (bytes memory);
+
+ // Selector: setCollectionSponsor(address) 7623402e
+ function setCollectionSponsor(address sponsor) external;
+
+ // Selector: confirmCollectionSponsorship() 3c50e97a
+ function confirmCollectionSponsorship() external;
+
+ // Selector: setCollectionLimit(string,uint32) 6a3841db
+ function setCollectionLimit(string memory limit, uint32 value) external;
+
+ // Selector: setCollectionLimit(string,bool) 993b7fba
+ function setCollectionLimit(string memory limit, bool value) external;
+
+ // Selector: contractAddress() f6b4dfb4
+ function contractAddress() external view returns (address);
+
+ // Selector: addCollectionAdmin(address) 92e462c7
+ function addCollectionAdmin(address newAdmin) external view;
+
+ // Selector: removeCollectionAdmin(address) fafd7b42
+ function removeCollectionAdmin(address admin) external view;
+
+ // Selector: setCollectionNesting(bool) 112d4586
+ function setCollectionNesting(bool enable) external;
+
+ // Selector: setCollectionNesting(bool,address[]) 64872396
+ function setCollectionNesting(bool enable, address[] memory collections)
+ external;
+
+ // Selector: setCollectionAccess(uint8) 41835d4c
+ function setCollectionAccess(uint8 mode) external;
+
+ // Selector: addToCollectionAllowList(address) 67844fe6
+ function addToCollectionAllowList(address user) external view;
+
+ // Selector: removeFromCollectionAllowList(address) 85c51acb
+ function removeFromCollectionAllowList(address user) external view;
+
+ // Selector: setCollectionMintMode(bool) 00018e84
+ function setCollectionMintMode(bool mode) external;
+}
+
// Selector: 780e9d63
interface ERC721Enumerable is Dummy, ERC165 {
// Selector: tokenByIndex(uint256) 4f6ccce7
tests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth--- a/tests/src/eth/contractSponsoring.test.ts
+++ b/tests/src/eth/contractSponsoring.test.ts
@@ -247,7 +247,8 @@
expect(oldPermissions.mintMode).to.be.false;
expect(oldPermissions.access).to.be.equal('Normal');
- await collectionEvm.methods.setCollectionAccess('AllowList').send({from: owner});
+ //TODO: change value, when enum generated
+ await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});
await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth1[2 {3 "anonymous": false,4 "inputs": [5 {6 "indexed": true,7 "internalType": "address",8 "name": "owner",9 "type": "address"10 },11 {12 "indexed": true,13 "internalType": "address",14 "name": "approved",15 "type": "address"16 },17 {18 "indexed": true,19 "internalType": "uint256",20 "name": "tokenId",21 "type": "uint256"22 }23 ],24 "name": "Approval",25 "type": "event"26 },27 {28 "anonymous": false,29 "inputs": [30 {31 "indexed": true,32 "internalType": "address",33 "name": "owner",34 "type": "address"35 },36 {37 "indexed": true,38 "internalType": "address",39 "name": "operator",40 "type": "address"41 },42 {43 "indexed": false,44 "internalType": "bool",45 "name": "approved",46 "type": "bool"47 }48 ],49 "name": "ApprovalForAll",50 "type": "event"51 },52 {53 "anonymous": false,54 "inputs": [],55 "name": "MintingFinished",56 "type": "event"57 },58 {59 "anonymous": false,60 "inputs": [61 {62 "indexed": true,63 "internalType": "address",64 "name": "from",65 "type": "address"66 },67 {68 "indexed": true,69 "internalType": "address",70 "name": "to",71 "type": "address"72 },73 {74 "indexed": true,75 "internalType": "uint256",76 "name": "tokenId",77 "type": "uint256"78 }79 ],80 "name": "Transfer",81 "type": "event"82 },83 {84 "inputs": [85 { "internalType": "address", "name": "newAdmin", "type": "address" }86 ],87 "name": "addCollectionAdmin",88 "outputs": [],89 "stateMutability": "view",90 "type": "function"91 },92 {93 "inputs": [94 { "internalType": "address", "name": "user", "type": "address" }95 ],96 "name": "addToCollectionAllowList",97 "outputs": [],98 "stateMutability": "view",99 "type": "function"100 },101 {102 "inputs": [103 { "internalType": "address", "name": "approved", "type": "address" },104 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }105 ],106 "name": "approve",107 "outputs": [],108 "stateMutability": "nonpayable",109 "type": "function"110 },111 {112 "inputs": [113 { "internalType": "address", "name": "owner", "type": "address" }114 ],115 "name": "balanceOf",116 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],117 "stateMutability": "view",118 "type": "function"119 },120 {121 "inputs": [122 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }123 ],124 "name": "burn",125 "outputs": [],126 "stateMutability": "nonpayable",127 "type": "function"128 },129 {130 "inputs": [131 { "internalType": "address", "name": "from", "type": "address" },132 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }133 ],134 "name": "burnFrom",135 "outputs": [],136 "stateMutability": "nonpayable",137 "type": "function"138 },139 {140 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],141 "name": "collectionProperty",142 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],143 "stateMutability": "view",144 "type": "function"145 },146 {147 "inputs": [],148 "name": "confirmCollectionSponsorship",149 "outputs": [],150 "stateMutability": "nonpayable",151 "type": "function"152 },153 {154 "inputs": [],155 "name": "contractAddress",156 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],157 "stateMutability": "view",158 "type": "function"159 },160 {161 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],162 "name": "deleteCollectionProperty",163 "outputs": [],164 "stateMutability": "nonpayable",165 "type": "function"166 },167 {168 "inputs": [169 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },170 { "internalType": "string", "name": "key", "type": "string" }171 ],172 "name": "deleteProperty",173 "outputs": [],174 "stateMutability": "nonpayable",175 "type": "function"176 },177 {178 "inputs": [],179 "name": "finishMinting",180 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],181 "stateMutability": "nonpayable",182 "type": "function"183 },184 {185 "inputs": [186 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }187 ],188 "name": "getApproved",189 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],190 "stateMutability": "view",191 "type": "function"192 },193 {194 "inputs": [195 { "internalType": "address", "name": "owner", "type": "address" },196 { "internalType": "address", "name": "operator", "type": "address" }197 ],198 "name": "isApprovedForAll",199 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],200 "stateMutability": "view",201 "type": "function"202 },203 {204 "inputs": [205 { "internalType": "address", "name": "to", "type": "address" },206 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }207 ],208 "name": "mint",209 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],210 "stateMutability": "nonpayable",211 "type": "function"212 },213 {214 "inputs": [215 { "internalType": "address", "name": "to", "type": "address" },216 { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }217 ],218 "name": "mintBulk",219 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],220 "stateMutability": "nonpayable",221 "type": "function"222 },223 {224 "inputs": [225 { "internalType": "address", "name": "to", "type": "address" },226 {227 "components": [228 { "internalType": "uint256", "name": "field_0", "type": "uint256" },229 { "internalType": "string", "name": "field_1", "type": "string" }230 ],231 "internalType": "struct Tuple0[]",232 "name": "tokens",233 "type": "tuple[]"234 }235 ],236 "name": "mintBulkWithTokenURI",237 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],238 "stateMutability": "nonpayable",239 "type": "function"240 },241 {242 "inputs": [243 { "internalType": "address", "name": "to", "type": "address" },244 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },245 { "internalType": "string", "name": "tokenUri", "type": "string" }246 ],247 "name": "mintWithTokenURI",248 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],249 "stateMutability": "nonpayable",250 "type": "function"251 },252 {253 "inputs": [],254 "name": "mintingFinished",255 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],256 "stateMutability": "view",257 "type": "function"258 },259 {260 "inputs": [],261 "name": "name",262 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],263 "stateMutability": "view",264 "type": "function"265 },266 {267 "inputs": [],268 "name": "nextTokenId",269 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],270 "stateMutability": "view",271 "type": "function"272 },273 {274 "inputs": [275 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }276 ],277 "name": "ownerOf",278 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],279 "stateMutability": "view",280 "type": "function"281 },282 {283 "inputs": [284 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },285 { "internalType": "string", "name": "key", "type": "string" }286 ],287 "name": "property",288 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],289 "stateMutability": "view",290 "type": "function"291 },292 {293 "inputs": [294 { "internalType": "address", "name": "admin", "type": "address" }295 ],296 "name": "removeCollectionAdmin",297 "outputs": [],298 "stateMutability": "view",299 "type": "function"300 },301 {302 "inputs": [303 { "internalType": "address", "name": "user", "type": "address" }304 ],305 "name": "removeFromCollectionAllowList",306 "outputs": [],307 "stateMutability": "view",308 "type": "function"309 },310 {311 "inputs": [312 { "internalType": "address", "name": "from", "type": "address" },313 { "internalType": "address", "name": "to", "type": "address" },314 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }315 ],316 "name": "safeTransferFrom",317 "outputs": [],318 "stateMutability": "nonpayable",319 "type": "function"320 },321 {322 "inputs": [323 { "internalType": "address", "name": "from", "type": "address" },324 { "internalType": "address", "name": "to", "type": "address" },325 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },326 { "internalType": "bytes", "name": "data", "type": "bytes" }327 ],328 "name": "safeTransferFromWithData",329 "outputs": [],330 "stateMutability": "nonpayable",331 "type": "function"332 },333 {334 "inputs": [335 { "internalType": "address", "name": "operator", "type": "address" },336 { "internalType": "bool", "name": "approved", "type": "bool" }337 ],338 "name": "setApprovalForAll",339 "outputs": [],340 "stateMutability": "nonpayable",341 "type": "function"342 },343 {344 "inputs": [{ "internalType": "string", "name": "mode", "type": "string" }],345 "name": "setCollectionAccess",346 "outputs": [],347 "stateMutability": "nonpayable",348 "type": "function"349 },350 {351 "inputs": [352 { "internalType": "string", "name": "limit", "type": "string" },353 { "internalType": "uint32", "name": "value", "type": "uint32" }354 ],355 "name": "setCollectionLimit",356 "outputs": [],357 "stateMutability": "nonpayable",358 "type": "function"359 },360 {361 "inputs": [362 { "internalType": "string", "name": "limit", "type": "string" },363 { "internalType": "bool", "name": "value", "type": "bool" }364 ],365 "name": "setCollectionLimit",366 "outputs": [],367 "stateMutability": "nonpayable",368 "type": "function"369 },370 {371 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],372 "name": "setCollectionMintMode",373 "outputs": [],374 "stateMutability": "nonpayable",375 "type": "function"376 },377 {378 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],379 "name": "setCollectionNesting",380 "outputs": [],381 "stateMutability": "nonpayable",382 "type": "function"383 },384 {385 "inputs": [386 { "internalType": "bool", "name": "enable", "type": "bool" },387 {388 "internalType": "address[]",389 "name": "collections",390 "type": "address[]"391 }392 ],393 "name": "setCollectionNesting",394 "outputs": [],395 "stateMutability": "nonpayable",396 "type": "function"397 },398 {399 "inputs": [400 { "internalType": "string", "name": "key", "type": "string" },401 { "internalType": "bytes", "name": "value", "type": "bytes" }402 ],403 "name": "setCollectionProperty",404 "outputs": [],405 "stateMutability": "nonpayable",406 "type": "function"407 },408 {409 "inputs": [410 { "internalType": "address", "name": "sponsor", "type": "address" }411 ],412 "name": "setCollectionSponsor",413 "outputs": [],414 "stateMutability": "nonpayable",415 "type": "function"416 },417 {418 "inputs": [419 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },420 { "internalType": "string", "name": "key", "type": "string" },421 { "internalType": "bytes", "name": "value", "type": "bytes" }422 ],423 "name": "setProperty",424 "outputs": [],425 "stateMutability": "nonpayable",426 "type": "function"427 },428 {429 "inputs": [430 { "internalType": "string", "name": "key", "type": "string" },431 { "internalType": "bool", "name": "isMutable", "type": "bool" },432 { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },433 { "internalType": "bool", "name": "tokenOwner", "type": "bool" }434 ],435 "name": "setTokenPropertyPermission",436 "outputs": [],437 "stateMutability": "nonpayable",438 "type": "function"439 },440 {441 "inputs": [442 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }443 ],444 "name": "supportsInterface",445 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],446 "stateMutability": "view",447 "type": "function"448 },449 {450 "inputs": [],451 "name": "symbol",452 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],453 "stateMutability": "view",454 "type": "function"455 },456 {457 "inputs": [458 { "internalType": "uint256", "name": "index", "type": "uint256" }459 ],460 "name": "tokenByIndex",461 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],462 "stateMutability": "view",463 "type": "function"464 },465 {466 "inputs": [467 { "internalType": "address", "name": "owner", "type": "address" },468 { "internalType": "uint256", "name": "index", "type": "uint256" }469 ],470 "name": "tokenOfOwnerByIndex",471 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],472 "stateMutability": "view",473 "type": "function"474 },475 {476 "inputs": [477 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }478 ],479 "name": "tokenURI",480 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],481 "stateMutability": "view",482 "type": "function"483 },484 {485 "inputs": [],486 "name": "totalSupply",487 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],488 "stateMutability": "view",489 "type": "function"490 },491 {492 "inputs": [493 { "internalType": "address", "name": "to", "type": "address" },494 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }495 ],496 "name": "transfer",497 "outputs": [],498 "stateMutability": "nonpayable",499 "type": "function"500 },501 {502 "inputs": [503 { "internalType": "address", "name": "from", "type": "address" },504 { "internalType": "address", "name": "to", "type": "address" },505 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }506 ],507 "name": "transferFrom",508 "outputs": [],509 "stateMutability": "nonpayable",510 "type": "function"511 }512]1[2 {3 "anonymous": false,4 "inputs": [5 {6 "indexed": true,7 "internalType": "address",8 "name": "owner",9 "type": "address"10 },11 {12 "indexed": true,13 "internalType": "address",14 "name": "approved",15 "type": "address"16 },17 {18 "indexed": true,19 "internalType": "uint256",20 "name": "tokenId",21 "type": "uint256"22 }23 ],24 "name": "Approval",25 "type": "event"26 },27 {28 "anonymous": false,29 "inputs": [30 {31 "indexed": true,32 "internalType": "address",33 "name": "owner",34 "type": "address"35 },36 {37 "indexed": true,38 "internalType": "address",39 "name": "operator",40 "type": "address"41 },42 {43 "indexed": false,44 "internalType": "bool",45 "name": "approved",46 "type": "bool"47 }48 ],49 "name": "ApprovalForAll",50 "type": "event"51 },52 {53 "anonymous": false,54 "inputs": [],55 "name": "MintingFinished",56 "type": "event"57 },58 {59 "anonymous": false,60 "inputs": [61 {62 "indexed": true,63 "internalType": "address",64 "name": "from",65 "type": "address"66 },67 {68 "indexed": true,69 "internalType": "address",70 "name": "to",71 "type": "address"72 },73 {74 "indexed": true,75 "internalType": "uint256",76 "name": "tokenId",77 "type": "uint256"78 }79 ],80 "name": "Transfer",81 "type": "event"82 },83 {84 "inputs": [85 { "internalType": "address", "name": "newAdmin", "type": "address" }86 ],87 "name": "addCollectionAdmin",88 "outputs": [],89 "stateMutability": "view",90 "type": "function"91 },92 {93 "inputs": [94 { "internalType": "address", "name": "user", "type": "address" }95 ],96 "name": "addToCollectionAllowList",97 "outputs": [],98 "stateMutability": "view",99 "type": "function"100 },101 {102 "inputs": [103 { "internalType": "address", "name": "approved", "type": "address" },104 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }105 ],106 "name": "approve",107 "outputs": [],108 "stateMutability": "nonpayable",109 "type": "function"110 },111 {112 "inputs": [113 { "internalType": "address", "name": "owner", "type": "address" }114 ],115 "name": "balanceOf",116 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],117 "stateMutability": "view",118 "type": "function"119 },120 {121 "inputs": [122 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }123 ],124 "name": "burn",125 "outputs": [],126 "stateMutability": "nonpayable",127 "type": "function"128 },129 {130 "inputs": [131 { "internalType": "address", "name": "from", "type": "address" },132 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }133 ],134 "name": "burnFrom",135 "outputs": [],136 "stateMutability": "nonpayable",137 "type": "function"138 },139 {140 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],141 "name": "collectionProperty",142 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],143 "stateMutability": "view",144 "type": "function"145 },146 {147 "inputs": [],148 "name": "confirmCollectionSponsorship",149 "outputs": [],150 "stateMutability": "nonpayable",151 "type": "function"152 },153 {154 "inputs": [],155 "name": "contractAddress",156 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],157 "stateMutability": "view",158 "type": "function"159 },160 {161 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],162 "name": "deleteCollectionProperty",163 "outputs": [],164 "stateMutability": "nonpayable",165 "type": "function"166 },167 {168 "inputs": [169 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },170 { "internalType": "string", "name": "key", "type": "string" }171 ],172 "name": "deleteProperty",173 "outputs": [],174 "stateMutability": "nonpayable",175 "type": "function"176 },177 {178 "inputs": [],179 "name": "finishMinting",180 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],181 "stateMutability": "nonpayable",182 "type": "function"183 },184 {185 "inputs": [186 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }187 ],188 "name": "getApproved",189 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],190 "stateMutability": "view",191 "type": "function"192 },193 {194 "inputs": [195 { "internalType": "address", "name": "owner", "type": "address" },196 { "internalType": "address", "name": "operator", "type": "address" }197 ],198 "name": "isApprovedForAll",199 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],200 "stateMutability": "view",201 "type": "function"202 },203 {204 "inputs": [205 { "internalType": "address", "name": "to", "type": "address" },206 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }207 ],208 "name": "mint",209 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],210 "stateMutability": "nonpayable",211 "type": "function"212 },213 {214 "inputs": [215 { "internalType": "address", "name": "to", "type": "address" },216 { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }217 ],218 "name": "mintBulk",219 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],220 "stateMutability": "nonpayable",221 "type": "function"222 },223 {224 "inputs": [225 { "internalType": "address", "name": "to", "type": "address" },226 {227 "components": [228 { "internalType": "uint256", "name": "field_0", "type": "uint256" },229 { "internalType": "string", "name": "field_1", "type": "string" }230 ],231 "internalType": "struct Tuple0[]",232 "name": "tokens",233 "type": "tuple[]"234 }235 ],236 "name": "mintBulkWithTokenURI",237 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],238 "stateMutability": "nonpayable",239 "type": "function"240 },241 {242 "inputs": [243 { "internalType": "address", "name": "to", "type": "address" },244 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },245 { "internalType": "string", "name": "tokenUri", "type": "string" }246 ],247 "name": "mintWithTokenURI",248 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],249 "stateMutability": "nonpayable",250 "type": "function"251 },252 {253 "inputs": [],254 "name": "mintingFinished",255 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],256 "stateMutability": "view",257 "type": "function"258 },259 {260 "inputs": [],261 "name": "name",262 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],263 "stateMutability": "view",264 "type": "function"265 },266 {267 "inputs": [],268 "name": "nextTokenId",269 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],270 "stateMutability": "view",271 "type": "function"272 },273 {274 "inputs": [275 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }276 ],277 "name": "ownerOf",278 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],279 "stateMutability": "view",280 "type": "function"281 },282 {283 "inputs": [284 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },285 { "internalType": "string", "name": "key", "type": "string" }286 ],287 "name": "property",288 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],289 "stateMutability": "view",290 "type": "function"291 },292 {293 "inputs": [294 { "internalType": "address", "name": "admin", "type": "address" }295 ],296 "name": "removeCollectionAdmin",297 "outputs": [],298 "stateMutability": "view",299 "type": "function"300 },301 {302 "inputs": [303 { "internalType": "address", "name": "user", "type": "address" }304 ],305 "name": "removeFromCollectionAllowList",306 "outputs": [],307 "stateMutability": "view",308 "type": "function"309 },310 {311 "inputs": [312 { "internalType": "address", "name": "from", "type": "address" },313 { "internalType": "address", "name": "to", "type": "address" },314 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }315 ],316 "name": "safeTransferFrom",317 "outputs": [],318 "stateMutability": "nonpayable",319 "type": "function"320 },321 {322 "inputs": [323 { "internalType": "address", "name": "from", "type": "address" },324 { "internalType": "address", "name": "to", "type": "address" },325 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },326 { "internalType": "bytes", "name": "data", "type": "bytes" }327 ],328 "name": "safeTransferFromWithData",329 "outputs": [],330 "stateMutability": "nonpayable",331 "type": "function"332 },333 {334 "inputs": [335 { "internalType": "address", "name": "operator", "type": "address" },336 { "internalType": "bool", "name": "approved", "type": "bool" }337 ],338 "name": "setApprovalForAll",339 "outputs": [],340 "stateMutability": "nonpayable",341 "type": "function"342 },343 {344 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],345 "name": "setCollectionAccess",346 "outputs": [],347 "stateMutability": "nonpayable",348 "type": "function"349 },350 {351 "inputs": [352 { "internalType": "string", "name": "limit", "type": "string" },353 { "internalType": "uint32", "name": "value", "type": "uint32" }354 ],355 "name": "setCollectionLimit",356 "outputs": [],357 "stateMutability": "nonpayable",358 "type": "function"359 },360 {361 "inputs": [362 { "internalType": "string", "name": "limit", "type": "string" },363 { "internalType": "bool", "name": "value", "type": "bool" }364 ],365 "name": "setCollectionLimit",366 "outputs": [],367 "stateMutability": "nonpayable",368 "type": "function"369 },370 {371 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],372 "name": "setCollectionMintMode",373 "outputs": [],374 "stateMutability": "nonpayable",375 "type": "function"376 },377 {378 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],379 "name": "setCollectionNesting",380 "outputs": [],381 "stateMutability": "nonpayable",382 "type": "function"383 },384 {385 "inputs": [386 { "internalType": "bool", "name": "enable", "type": "bool" },387 {388 "internalType": "address[]",389 "name": "collections",390 "type": "address[]"391 }392 ],393 "name": "setCollectionNesting",394 "outputs": [],395 "stateMutability": "nonpayable",396 "type": "function"397 },398 {399 "inputs": [400 { "internalType": "string", "name": "key", "type": "string" },401 { "internalType": "bytes", "name": "value", "type": "bytes" }402 ],403 "name": "setCollectionProperty",404 "outputs": [],405 "stateMutability": "nonpayable",406 "type": "function"407 },408 {409 "inputs": [410 { "internalType": "address", "name": "sponsor", "type": "address" }411 ],412 "name": "setCollectionSponsor",413 "outputs": [],414 "stateMutability": "nonpayable",415 "type": "function"416 },417 {418 "inputs": [419 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },420 { "internalType": "string", "name": "key", "type": "string" },421 { "internalType": "bytes", "name": "value", "type": "bytes" }422 ],423 "name": "setProperty",424 "outputs": [],425 "stateMutability": "nonpayable",426 "type": "function"427 },428 {429 "inputs": [430 { "internalType": "string", "name": "key", "type": "string" },431 { "internalType": "bool", "name": "isMutable", "type": "bool" },432 { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },433 { "internalType": "bool", "name": "tokenOwner", "type": "bool" }434 ],435 "name": "setTokenPropertyPermission",436 "outputs": [],437 "stateMutability": "nonpayable",438 "type": "function"439 },440 {441 "inputs": [442 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }443 ],444 "name": "supportsInterface",445 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],446 "stateMutability": "view",447 "type": "function"448 },449 {450 "inputs": [],451 "name": "symbol",452 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],453 "stateMutability": "view",454 "type": "function"455 },456 {457 "inputs": [458 { "internalType": "uint256", "name": "index", "type": "uint256" }459 ],460 "name": "tokenByIndex",461 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],462 "stateMutability": "view",463 "type": "function"464 },465 {466 "inputs": [467 { "internalType": "address", "name": "owner", "type": "address" },468 { "internalType": "uint256", "name": "index", "type": "uint256" }469 ],470 "name": "tokenOfOwnerByIndex",471 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],472 "stateMutability": "view",473 "type": "function"474 },475 {476 "inputs": [477 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }478 ],479 "name": "tokenURI",480 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],481 "stateMutability": "view",482 "type": "function"483 },484 {485 "inputs": [],486 "name": "totalSupply",487 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],488 "stateMutability": "view",489 "type": "function"490 },491 {492 "inputs": [493 { "internalType": "address", "name": "to", "type": "address" },494 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }495 ],496 "name": "transfer",497 "outputs": [],498 "stateMutability": "nonpayable",499 "type": "function"500 },501 {502 "inputs": [503 { "internalType": "address", "name": "from", "type": "address" },504 { "internalType": "address", "name": "to", "type": "address" },505 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }506 ],507 "name": "transferFrom",508 "outputs": [],509 "stateMutability": "nonpayable",510 "type": "function"511 }512]