difftreelog
change function name `tokenProperties` to `properties`
in: master
12 files changed
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -721,11 +721,7 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- fn token_properties(
- &self,
- token_id: uint256,
- keys: Vec<string>,
- ) -> Result<Vec<PropertyStruct>> {
+ fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {
let keys = keys
.into_iter()
.map(|key| {
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
@@ -676,7 +676,7 @@
}
/// @title Unique extensions for ERC721.
-/// @dev the ERC-165 identifier for this interface is 0xb8f094a0
+/// @dev the ERC-165 identifier for this interface is 0xb74c26b7
contract ERC721UniqueExtensions is Dummy, ERC165 {
/// @notice A descriptive name for a collection of NFTs in this contract
/// @dev EVM selector for this function is: 0x06fdde03,
@@ -722,9 +722,9 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- /// @dev EVM selector for this function is: 0xefc26c69,
- /// or in textual repr: tokenProperties(uint256,string[])
- function tokenProperties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {
+ /// @dev EVM selector for this function is: 0xe07ede7e,
+ /// or in textual repr: properties(uint256,string[])
+ function properties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {
require(false, stub_error);
tokenId;
keys;
pallets/refungible/src/erc.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -749,11 +749,7 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- fn token_properties(
- &self,
- token_id: uint256,
- keys: Vec<string>,
- ) -> Result<Vec<PropertyStruct>> {
+ fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {
let keys = keys
.into_iter()
.map(|key| {
pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -674,7 +674,7 @@
}
/// @title Unique extensions for ERC721.
-/// @dev the ERC-165 identifier for this interface is 0x1d4b64d6
+/// @dev the ERC-165 identifier for this interface is 0x12f7d6c1
contract ERC721UniqueExtensions is Dummy, ERC165 {
/// @notice A descriptive name for a collection of NFTs in this contract
/// @dev EVM selector for this function is: 0x06fdde03,
@@ -720,9 +720,9 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- /// @dev EVM selector for this function is: 0xefc26c69,
- /// or in textual repr: tokenProperties(uint256,string[])
- function tokenProperties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {
+ /// @dev EVM selector for this function is: 0xe07ede7e,
+ /// or in textual repr: properties(uint256,string[])
+ function properties(uint256 tokenId, string[] memory keys) public view returns (Property[] memory) {
require(false, stub_error);
tokenId;
keys;
tests/src/eth/abi/nonFungible.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 {86 "components": [87 { "internalType": "address", "name": "eth", "type": "address" },88 { "internalType": "uint256", "name": "sub", "type": "uint256" }89 ],90 "internalType": "struct EthCrossAccount",91 "name": "newAdmin",92 "type": "tuple"93 }94 ],95 "name": "addCollectionAdminCross",96 "outputs": [],97 "stateMutability": "nonpayable",98 "type": "function"99 },100 {101 "inputs": [102 {103 "components": [104 { "internalType": "address", "name": "eth", "type": "address" },105 { "internalType": "uint256", "name": "sub", "type": "uint256" }106 ],107 "internalType": "struct EthCrossAccount",108 "name": "user",109 "type": "tuple"110 }111 ],112 "name": "addToCollectionAllowListCross",113 "outputs": [],114 "stateMutability": "nonpayable",115 "type": "function"116 },117 {118 "inputs": [119 {120 "components": [121 { "internalType": "address", "name": "eth", "type": "address" },122 { "internalType": "uint256", "name": "sub", "type": "uint256" }123 ],124 "internalType": "struct EthCrossAccount",125 "name": "user",126 "type": "tuple"127 }128 ],129 "name": "allowlistedCross",130 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],131 "stateMutability": "view",132 "type": "function"133 },134 {135 "inputs": [136 { "internalType": "address", "name": "approved", "type": "address" },137 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }138 ],139 "name": "approve",140 "outputs": [],141 "stateMutability": "nonpayable",142 "type": "function"143 },144 {145 "inputs": [146 {147 "components": [148 { "internalType": "address", "name": "eth", "type": "address" },149 { "internalType": "uint256", "name": "sub", "type": "uint256" }150 ],151 "internalType": "struct EthCrossAccount",152 "name": "approved",153 "type": "tuple"154 },155 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }156 ],157 "name": "approveCross",158 "outputs": [],159 "stateMutability": "nonpayable",160 "type": "function"161 },162 {163 "inputs": [164 { "internalType": "address", "name": "owner", "type": "address" }165 ],166 "name": "balanceOf",167 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],168 "stateMutability": "view",169 "type": "function"170 },171 {172 "inputs": [173 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }174 ],175 "name": "burn",176 "outputs": [],177 "stateMutability": "nonpayable",178 "type": "function"179 },180 {181 "inputs": [182 {183 "components": [184 { "internalType": "address", "name": "eth", "type": "address" },185 { "internalType": "uint256", "name": "sub", "type": "uint256" }186 ],187 "internalType": "struct EthCrossAccount",188 "name": "from",189 "type": "tuple"190 },191 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }192 ],193 "name": "burnFromCross",194 "outputs": [],195 "stateMutability": "nonpayable",196 "type": "function"197 },198 {199 "inputs": [200 {201 "components": [202 { "internalType": "address", "name": "eth", "type": "address" },203 { "internalType": "uint256", "name": "sub", "type": "uint256" }204 ],205 "internalType": "struct EthCrossAccount",206 "name": "newOwner",207 "type": "tuple"208 }209 ],210 "name": "changeCollectionOwnerCross",211 "outputs": [],212 "stateMutability": "nonpayable",213 "type": "function"214 },215 {216 "inputs": [],217 "name": "collectionAdmins",218 "outputs": [219 {220 "components": [221 { "internalType": "address", "name": "eth", "type": "address" },222 { "internalType": "uint256", "name": "sub", "type": "uint256" }223 ],224 "internalType": "struct EthCrossAccount[]",225 "name": "",226 "type": "tuple[]"227 }228 ],229 "stateMutability": "view",230 "type": "function"231 },232 {233 "inputs": [],234 "name": "collectionOwner",235 "outputs": [236 {237 "components": [238 { "internalType": "address", "name": "eth", "type": "address" },239 { "internalType": "uint256", "name": "sub", "type": "uint256" }240 ],241 "internalType": "struct EthCrossAccount",242 "name": "",243 "type": "tuple"244 }245 ],246 "stateMutability": "view",247 "type": "function"248 },249 {250 "inputs": [251 { "internalType": "string[]", "name": "keys", "type": "string[]" }252 ],253 "name": "collectionProperties",254 "outputs": [255 {256 "components": [257 { "internalType": "string", "name": "key", "type": "string" },258 { "internalType": "bytes", "name": "value", "type": "bytes" }259 ],260 "internalType": "struct Property[]",261 "name": "",262 "type": "tuple[]"263 }264 ],265 "stateMutability": "view",266 "type": "function"267 },268 {269 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],270 "name": "collectionProperty",271 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],272 "stateMutability": "view",273 "type": "function"274 },275 {276 "inputs": [],277 "name": "collectionSponsor",278 "outputs": [279 {280 "components": [281 { "internalType": "address", "name": "field_0", "type": "address" },282 { "internalType": "uint256", "name": "field_1", "type": "uint256" }283 ],284 "internalType": "struct Tuple30",285 "name": "",286 "type": "tuple"287 }288 ],289 "stateMutability": "view",290 "type": "function"291 },292 {293 "inputs": [],294 "name": "confirmCollectionSponsorship",295 "outputs": [],296 "stateMutability": "nonpayable",297 "type": "function"298 },299 {300 "inputs": [],301 "name": "contractAddress",302 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],303 "stateMutability": "view",304 "type": "function"305 },306 {307 "inputs": [308 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }309 ],310 "name": "crossOwnerOf",311 "outputs": [312 {313 "components": [314 { "internalType": "address", "name": "eth", "type": "address" },315 { "internalType": "uint256", "name": "sub", "type": "uint256" }316 ],317 "internalType": "struct EthCrossAccount",318 "name": "",319 "type": "tuple"320 }321 ],322 "stateMutability": "view",323 "type": "function"324 },325 {326 "inputs": [327 { "internalType": "string[]", "name": "keys", "type": "string[]" }328 ],329 "name": "deleteCollectionProperties",330 "outputs": [],331 "stateMutability": "nonpayable",332 "type": "function"333 },334 {335 "inputs": [336 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },337 { "internalType": "string[]", "name": "keys", "type": "string[]" }338 ],339 "name": "deleteProperties",340 "outputs": [],341 "stateMutability": "nonpayable",342 "type": "function"343 },344 {345 "inputs": [],346 "name": "description",347 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],348 "stateMutability": "view",349 "type": "function"350 },351 {352 "inputs": [],353 "name": "finishMinting",354 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],355 "stateMutability": "nonpayable",356 "type": "function"357 },358 {359 "inputs": [360 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }361 ],362 "name": "getApproved",363 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],364 "stateMutability": "view",365 "type": "function"366 },367 {368 "inputs": [],369 "name": "hasCollectionPendingSponsor",370 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],371 "stateMutability": "view",372 "type": "function"373 },374 {375 "inputs": [376 { "internalType": "address", "name": "owner", "type": "address" },377 { "internalType": "address", "name": "operator", "type": "address" }378 ],379 "name": "isApprovedForAll",380 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],381 "stateMutability": "view",382 "type": "function"383 },384 {385 "inputs": [386 {387 "components": [388 { "internalType": "address", "name": "eth", "type": "address" },389 { "internalType": "uint256", "name": "sub", "type": "uint256" }390 ],391 "internalType": "struct EthCrossAccount",392 "name": "user",393 "type": "tuple"394 }395 ],396 "name": "isOwnerOrAdminCross",397 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],398 "stateMutability": "view",399 "type": "function"400 },401 {402 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],403 "name": "mint",404 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],405 "stateMutability": "nonpayable",406 "type": "function"407 },408 {409 "inputs": [410 { "internalType": "address", "name": "to", "type": "address" },411 { "internalType": "string", "name": "tokenUri", "type": "string" }412 ],413 "name": "mintWithTokenURI",414 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],415 "stateMutability": "nonpayable",416 "type": "function"417 },418 {419 "inputs": [],420 "name": "mintingFinished",421 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],422 "stateMutability": "view",423 "type": "function"424 },425 {426 "inputs": [],427 "name": "name",428 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],429 "stateMutability": "view",430 "type": "function"431 },432 {433 "inputs": [],434 "name": "nextTokenId",435 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],436 "stateMutability": "view",437 "type": "function"438 },439 {440 "inputs": [441 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }442 ],443 "name": "ownerOf",444 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],445 "stateMutability": "view",446 "type": "function"447 },448 {449 "inputs": [450 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },451 { "internalType": "string", "name": "key", "type": "string" }452 ],453 "name": "property",454 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],455 "stateMutability": "view",456 "type": "function"457 },458 {459 "inputs": [460 {461 "components": [462 { "internalType": "address", "name": "eth", "type": "address" },463 { "internalType": "uint256", "name": "sub", "type": "uint256" }464 ],465 "internalType": "struct EthCrossAccount",466 "name": "admin",467 "type": "tuple"468 }469 ],470 "name": "removeCollectionAdminCross",471 "outputs": [],472 "stateMutability": "nonpayable",473 "type": "function"474 },475 {476 "inputs": [],477 "name": "removeCollectionSponsor",478 "outputs": [],479 "stateMutability": "nonpayable",480 "type": "function"481 },482 {483 "inputs": [484 {485 "components": [486 { "internalType": "address", "name": "eth", "type": "address" },487 { "internalType": "uint256", "name": "sub", "type": "uint256" }488 ],489 "internalType": "struct EthCrossAccount",490 "name": "user",491 "type": "tuple"492 }493 ],494 "name": "removeFromCollectionAllowListCross",495 "outputs": [],496 "stateMutability": "nonpayable",497 "type": "function"498 },499 {500 "inputs": [501 { "internalType": "address", "name": "from", "type": "address" },502 { "internalType": "address", "name": "to", "type": "address" },503 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }504 ],505 "name": "safeTransferFrom",506 "outputs": [],507 "stateMutability": "nonpayable",508 "type": "function"509 },510 {511 "inputs": [512 { "internalType": "address", "name": "from", "type": "address" },513 { "internalType": "address", "name": "to", "type": "address" },514 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },515 { "internalType": "bytes", "name": "data", "type": "bytes" }516 ],517 "name": "safeTransferFrom",518 "outputs": [],519 "stateMutability": "nonpayable",520 "type": "function"521 },522 {523 "inputs": [524 { "internalType": "address", "name": "operator", "type": "address" },525 { "internalType": "bool", "name": "approved", "type": "bool" }526 ],527 "name": "setApprovalForAll",528 "outputs": [],529 "stateMutability": "nonpayable",530 "type": "function"531 },532 {533 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],534 "name": "setCollectionAccess",535 "outputs": [],536 "stateMutability": "nonpayable",537 "type": "function"538 },539 {540 "inputs": [541 { "internalType": "string", "name": "limit", "type": "string" },542 { "internalType": "uint256", "name": "value", "type": "uint256" }543 ],544 "name": "setCollectionLimit",545 "outputs": [],546 "stateMutability": "nonpayable",547 "type": "function"548 },549 {550 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],551 "name": "setCollectionMintMode",552 "outputs": [],553 "stateMutability": "nonpayable",554 "type": "function"555 },556 {557 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],558 "name": "setCollectionNesting",559 "outputs": [],560 "stateMutability": "nonpayable",561 "type": "function"562 },563 {564 "inputs": [565 { "internalType": "bool", "name": "enable", "type": "bool" },566 {567 "internalType": "address[]",568 "name": "collections",569 "type": "address[]"570 }571 ],572 "name": "setCollectionNesting",573 "outputs": [],574 "stateMutability": "nonpayable",575 "type": "function"576 },577 {578 "inputs": [579 {580 "components": [581 { "internalType": "string", "name": "key", "type": "string" },582 { "internalType": "bytes", "name": "value", "type": "bytes" }583 ],584 "internalType": "struct Property[]",585 "name": "properties",586 "type": "tuple[]"587 }588 ],589 "name": "setCollectionProperties",590 "outputs": [],591 "stateMutability": "nonpayable",592 "type": "function"593 },594 {595 "inputs": [596 {597 "components": [598 { "internalType": "address", "name": "eth", "type": "address" },599 { "internalType": "uint256", "name": "sub", "type": "uint256" }600 ],601 "internalType": "struct EthCrossAccount",602 "name": "sponsor",603 "type": "tuple"604 }605 ],606 "name": "setCollectionSponsorCross",607 "outputs": [],608 "stateMutability": "nonpayable",609 "type": "function"610 },611 {612 "inputs": [613 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },614 {615 "components": [616 { "internalType": "string", "name": "key", "type": "string" },617 { "internalType": "bytes", "name": "value", "type": "bytes" }618 ],619 "internalType": "struct Property[]",620 "name": "properties",621 "type": "tuple[]"622 }623 ],624 "name": "setProperties",625 "outputs": [],626 "stateMutability": "nonpayable",627 "type": "function"628 },629 {630 "inputs": [631 { "internalType": "string", "name": "key", "type": "string" },632 { "internalType": "bool", "name": "isMutable", "type": "bool" },633 { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },634 { "internalType": "bool", "name": "tokenOwner", "type": "bool" }635 ],636 "name": "setTokenPropertyPermission",637 "outputs": [],638 "stateMutability": "nonpayable",639 "type": "function"640 },641 {642 "inputs": [643 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }644 ],645 "name": "supportsInterface",646 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],647 "stateMutability": "view",648 "type": "function"649 },650 {651 "inputs": [],652 "name": "symbol",653 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],654 "stateMutability": "view",655 "type": "function"656 },657 {658 "inputs": [659 { "internalType": "uint256", "name": "index", "type": "uint256" }660 ],661 "name": "tokenByIndex",662 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],663 "stateMutability": "view",664 "type": "function"665 },666 {667 "inputs": [668 { "internalType": "address", "name": "owner", "type": "address" },669 { "internalType": "uint256", "name": "index", "type": "uint256" }670 ],671 "name": "tokenOfOwnerByIndex",672 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],673 "stateMutability": "view",674 "type": "function"675 },676 {677 "inputs": [678 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },679 { "internalType": "string[]", "name": "keys", "type": "string[]" }680 ],681 "name": "tokenProperties",682 "outputs": [683 {684 "components": [685 { "internalType": "string", "name": "key", "type": "string" },686 { "internalType": "bytes", "name": "value", "type": "bytes" }687 ],688 "internalType": "struct Property[]",689 "name": "",690 "type": "tuple[]"691 }692 ],693 "stateMutability": "view",694 "type": "function"695 },696 {697 "inputs": [698 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }699 ],700 "name": "tokenURI",701 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],702 "stateMutability": "view",703 "type": "function"704 },705 {706 "inputs": [],707 "name": "totalSupply",708 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],709 "stateMutability": "view",710 "type": "function"711 },712 {713 "inputs": [714 { "internalType": "address", "name": "to", "type": "address" },715 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }716 ],717 "name": "transfer",718 "outputs": [],719 "stateMutability": "nonpayable",720 "type": "function"721 },722 {723 "inputs": [724 {725 "components": [726 { "internalType": "address", "name": "eth", "type": "address" },727 { "internalType": "uint256", "name": "sub", "type": "uint256" }728 ],729 "internalType": "struct EthCrossAccount",730 "name": "to",731 "type": "tuple"732 },733 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }734 ],735 "name": "transferCross",736 "outputs": [],737 "stateMutability": "nonpayable",738 "type": "function"739 },740 {741 "inputs": [742 { "internalType": "address", "name": "from", "type": "address" },743 { "internalType": "address", "name": "to", "type": "address" },744 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }745 ],746 "name": "transferFrom",747 "outputs": [],748 "stateMutability": "nonpayable",749 "type": "function"750 },751 {752 "inputs": [753 {754 "components": [755 { "internalType": "address", "name": "eth", "type": "address" },756 { "internalType": "uint256", "name": "sub", "type": "uint256" }757 ],758 "internalType": "struct EthCrossAccount",759 "name": "from",760 "type": "tuple"761 },762 {763 "components": [764 { "internalType": "address", "name": "eth", "type": "address" },765 { "internalType": "uint256", "name": "sub", "type": "uint256" }766 ],767 "internalType": "struct EthCrossAccount",768 "name": "to",769 "type": "tuple"770 },771 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }772 ],773 "name": "transferFromCross",774 "outputs": [],775 "stateMutability": "nonpayable",776 "type": "function"777 },778 {779 "inputs": [],780 "name": "uniqueCollectionType",781 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],782 "stateMutability": "view",783 "type": "function"784 }785]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 {86 "components": [87 { "internalType": "address", "name": "eth", "type": "address" },88 { "internalType": "uint256", "name": "sub", "type": "uint256" }89 ],90 "internalType": "struct EthCrossAccount",91 "name": "newAdmin",92 "type": "tuple"93 }94 ],95 "name": "addCollectionAdminCross",96 "outputs": [],97 "stateMutability": "nonpayable",98 "type": "function"99 },100 {101 "inputs": [102 {103 "components": [104 { "internalType": "address", "name": "eth", "type": "address" },105 { "internalType": "uint256", "name": "sub", "type": "uint256" }106 ],107 "internalType": "struct EthCrossAccount",108 "name": "user",109 "type": "tuple"110 }111 ],112 "name": "addToCollectionAllowListCross",113 "outputs": [],114 "stateMutability": "nonpayable",115 "type": "function"116 },117 {118 "inputs": [119 {120 "components": [121 { "internalType": "address", "name": "eth", "type": "address" },122 { "internalType": "uint256", "name": "sub", "type": "uint256" }123 ],124 "internalType": "struct EthCrossAccount",125 "name": "user",126 "type": "tuple"127 }128 ],129 "name": "allowlistedCross",130 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],131 "stateMutability": "view",132 "type": "function"133 },134 {135 "inputs": [136 { "internalType": "address", "name": "approved", "type": "address" },137 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }138 ],139 "name": "approve",140 "outputs": [],141 "stateMutability": "nonpayable",142 "type": "function"143 },144 {145 "inputs": [146 {147 "components": [148 { "internalType": "address", "name": "eth", "type": "address" },149 { "internalType": "uint256", "name": "sub", "type": "uint256" }150 ],151 "internalType": "struct EthCrossAccount",152 "name": "approved",153 "type": "tuple"154 },155 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }156 ],157 "name": "approveCross",158 "outputs": [],159 "stateMutability": "nonpayable",160 "type": "function"161 },162 {163 "inputs": [164 { "internalType": "address", "name": "owner", "type": "address" }165 ],166 "name": "balanceOf",167 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],168 "stateMutability": "view",169 "type": "function"170 },171 {172 "inputs": [173 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }174 ],175 "name": "burn",176 "outputs": [],177 "stateMutability": "nonpayable",178 "type": "function"179 },180 {181 "inputs": [182 {183 "components": [184 { "internalType": "address", "name": "eth", "type": "address" },185 { "internalType": "uint256", "name": "sub", "type": "uint256" }186 ],187 "internalType": "struct EthCrossAccount",188 "name": "from",189 "type": "tuple"190 },191 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }192 ],193 "name": "burnFromCross",194 "outputs": [],195 "stateMutability": "nonpayable",196 "type": "function"197 },198 {199 "inputs": [200 {201 "components": [202 { "internalType": "address", "name": "eth", "type": "address" },203 { "internalType": "uint256", "name": "sub", "type": "uint256" }204 ],205 "internalType": "struct EthCrossAccount",206 "name": "newOwner",207 "type": "tuple"208 }209 ],210 "name": "changeCollectionOwnerCross",211 "outputs": [],212 "stateMutability": "nonpayable",213 "type": "function"214 },215 {216 "inputs": [],217 "name": "collectionAdmins",218 "outputs": [219 {220 "components": [221 { "internalType": "address", "name": "eth", "type": "address" },222 { "internalType": "uint256", "name": "sub", "type": "uint256" }223 ],224 "internalType": "struct EthCrossAccount[]",225 "name": "",226 "type": "tuple[]"227 }228 ],229 "stateMutability": "view",230 "type": "function"231 },232 {233 "inputs": [],234 "name": "collectionOwner",235 "outputs": [236 {237 "components": [238 { "internalType": "address", "name": "eth", "type": "address" },239 { "internalType": "uint256", "name": "sub", "type": "uint256" }240 ],241 "internalType": "struct EthCrossAccount",242 "name": "",243 "type": "tuple"244 }245 ],246 "stateMutability": "view",247 "type": "function"248 },249 {250 "inputs": [251 { "internalType": "string[]", "name": "keys", "type": "string[]" }252 ],253 "name": "collectionProperties",254 "outputs": [255 {256 "components": [257 { "internalType": "string", "name": "key", "type": "string" },258 { "internalType": "bytes", "name": "value", "type": "bytes" }259 ],260 "internalType": "struct Property[]",261 "name": "",262 "type": "tuple[]"263 }264 ],265 "stateMutability": "view",266 "type": "function"267 },268 {269 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],270 "name": "collectionProperty",271 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],272 "stateMutability": "view",273 "type": "function"274 },275 {276 "inputs": [],277 "name": "collectionSponsor",278 "outputs": [279 {280 "components": [281 { "internalType": "address", "name": "field_0", "type": "address" },282 { "internalType": "uint256", "name": "field_1", "type": "uint256" }283 ],284 "internalType": "struct Tuple30",285 "name": "",286 "type": "tuple"287 }288 ],289 "stateMutability": "view",290 "type": "function"291 },292 {293 "inputs": [],294 "name": "confirmCollectionSponsorship",295 "outputs": [],296 "stateMutability": "nonpayable",297 "type": "function"298 },299 {300 "inputs": [],301 "name": "contractAddress",302 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],303 "stateMutability": "view",304 "type": "function"305 },306 {307 "inputs": [308 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }309 ],310 "name": "crossOwnerOf",311 "outputs": [312 {313 "components": [314 { "internalType": "address", "name": "eth", "type": "address" },315 { "internalType": "uint256", "name": "sub", "type": "uint256" }316 ],317 "internalType": "struct EthCrossAccount",318 "name": "",319 "type": "tuple"320 }321 ],322 "stateMutability": "view",323 "type": "function"324 },325 {326 "inputs": [327 { "internalType": "string[]", "name": "keys", "type": "string[]" }328 ],329 "name": "deleteCollectionProperties",330 "outputs": [],331 "stateMutability": "nonpayable",332 "type": "function"333 },334 {335 "inputs": [336 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },337 { "internalType": "string[]", "name": "keys", "type": "string[]" }338 ],339 "name": "deleteProperties",340 "outputs": [],341 "stateMutability": "nonpayable",342 "type": "function"343 },344 {345 "inputs": [],346 "name": "description",347 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],348 "stateMutability": "view",349 "type": "function"350 },351 {352 "inputs": [],353 "name": "finishMinting",354 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],355 "stateMutability": "nonpayable",356 "type": "function"357 },358 {359 "inputs": [360 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }361 ],362 "name": "getApproved",363 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],364 "stateMutability": "view",365 "type": "function"366 },367 {368 "inputs": [],369 "name": "hasCollectionPendingSponsor",370 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],371 "stateMutability": "view",372 "type": "function"373 },374 {375 "inputs": [376 { "internalType": "address", "name": "owner", "type": "address" },377 { "internalType": "address", "name": "operator", "type": "address" }378 ],379 "name": "isApprovedForAll",380 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],381 "stateMutability": "view",382 "type": "function"383 },384 {385 "inputs": [386 {387 "components": [388 { "internalType": "address", "name": "eth", "type": "address" },389 { "internalType": "uint256", "name": "sub", "type": "uint256" }390 ],391 "internalType": "struct EthCrossAccount",392 "name": "user",393 "type": "tuple"394 }395 ],396 "name": "isOwnerOrAdminCross",397 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],398 "stateMutability": "view",399 "type": "function"400 },401 {402 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],403 "name": "mint",404 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],405 "stateMutability": "nonpayable",406 "type": "function"407 },408 {409 "inputs": [410 { "internalType": "address", "name": "to", "type": "address" },411 { "internalType": "string", "name": "tokenUri", "type": "string" }412 ],413 "name": "mintWithTokenURI",414 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],415 "stateMutability": "nonpayable",416 "type": "function"417 },418 {419 "inputs": [],420 "name": "mintingFinished",421 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],422 "stateMutability": "view",423 "type": "function"424 },425 {426 "inputs": [],427 "name": "name",428 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],429 "stateMutability": "view",430 "type": "function"431 },432 {433 "inputs": [],434 "name": "nextTokenId",435 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],436 "stateMutability": "view",437 "type": "function"438 },439 {440 "inputs": [441 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }442 ],443 "name": "ownerOf",444 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],445 "stateMutability": "view",446 "type": "function"447 },448 {449 "inputs": [450 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },451 { "internalType": "string[]", "name": "keys", "type": "string[]" }452 ],453 "name": "properties",454 "outputs": [455 {456 "components": [457 { "internalType": "string", "name": "key", "type": "string" },458 { "internalType": "bytes", "name": "value", "type": "bytes" }459 ],460 "internalType": "struct Property[]",461 "name": "",462 "type": "tuple[]"463 }464 ],465 "stateMutability": "view",466 "type": "function"467 },468 {469 "inputs": [470 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },471 { "internalType": "string", "name": "key", "type": "string" }472 ],473 "name": "property",474 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],475 "stateMutability": "view",476 "type": "function"477 },478 {479 "inputs": [480 {481 "components": [482 { "internalType": "address", "name": "eth", "type": "address" },483 { "internalType": "uint256", "name": "sub", "type": "uint256" }484 ],485 "internalType": "struct EthCrossAccount",486 "name": "admin",487 "type": "tuple"488 }489 ],490 "name": "removeCollectionAdminCross",491 "outputs": [],492 "stateMutability": "nonpayable",493 "type": "function"494 },495 {496 "inputs": [],497 "name": "removeCollectionSponsor",498 "outputs": [],499 "stateMutability": "nonpayable",500 "type": "function"501 },502 {503 "inputs": [504 {505 "components": [506 { "internalType": "address", "name": "eth", "type": "address" },507 { "internalType": "uint256", "name": "sub", "type": "uint256" }508 ],509 "internalType": "struct EthCrossAccount",510 "name": "user",511 "type": "tuple"512 }513 ],514 "name": "removeFromCollectionAllowListCross",515 "outputs": [],516 "stateMutability": "nonpayable",517 "type": "function"518 },519 {520 "inputs": [521 { "internalType": "address", "name": "from", "type": "address" },522 { "internalType": "address", "name": "to", "type": "address" },523 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }524 ],525 "name": "safeTransferFrom",526 "outputs": [],527 "stateMutability": "nonpayable",528 "type": "function"529 },530 {531 "inputs": [532 { "internalType": "address", "name": "from", "type": "address" },533 { "internalType": "address", "name": "to", "type": "address" },534 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },535 { "internalType": "bytes", "name": "data", "type": "bytes" }536 ],537 "name": "safeTransferFrom",538 "outputs": [],539 "stateMutability": "nonpayable",540 "type": "function"541 },542 {543 "inputs": [544 { "internalType": "address", "name": "operator", "type": "address" },545 { "internalType": "bool", "name": "approved", "type": "bool" }546 ],547 "name": "setApprovalForAll",548 "outputs": [],549 "stateMutability": "nonpayable",550 "type": "function"551 },552 {553 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],554 "name": "setCollectionAccess",555 "outputs": [],556 "stateMutability": "nonpayable",557 "type": "function"558 },559 {560 "inputs": [561 { "internalType": "string", "name": "limit", "type": "string" },562 { "internalType": "uint256", "name": "value", "type": "uint256" }563 ],564 "name": "setCollectionLimit",565 "outputs": [],566 "stateMutability": "nonpayable",567 "type": "function"568 },569 {570 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],571 "name": "setCollectionMintMode",572 "outputs": [],573 "stateMutability": "nonpayable",574 "type": "function"575 },576 {577 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],578 "name": "setCollectionNesting",579 "outputs": [],580 "stateMutability": "nonpayable",581 "type": "function"582 },583 {584 "inputs": [585 { "internalType": "bool", "name": "enable", "type": "bool" },586 {587 "internalType": "address[]",588 "name": "collections",589 "type": "address[]"590 }591 ],592 "name": "setCollectionNesting",593 "outputs": [],594 "stateMutability": "nonpayable",595 "type": "function"596 },597 {598 "inputs": [599 {600 "components": [601 { "internalType": "string", "name": "key", "type": "string" },602 { "internalType": "bytes", "name": "value", "type": "bytes" }603 ],604 "internalType": "struct Property[]",605 "name": "properties",606 "type": "tuple[]"607 }608 ],609 "name": "setCollectionProperties",610 "outputs": [],611 "stateMutability": "nonpayable",612 "type": "function"613 },614 {615 "inputs": [616 {617 "components": [618 { "internalType": "address", "name": "eth", "type": "address" },619 { "internalType": "uint256", "name": "sub", "type": "uint256" }620 ],621 "internalType": "struct EthCrossAccount",622 "name": "sponsor",623 "type": "tuple"624 }625 ],626 "name": "setCollectionSponsorCross",627 "outputs": [],628 "stateMutability": "nonpayable",629 "type": "function"630 },631 {632 "inputs": [633 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },634 {635 "components": [636 { "internalType": "string", "name": "key", "type": "string" },637 { "internalType": "bytes", "name": "value", "type": "bytes" }638 ],639 "internalType": "struct Property[]",640 "name": "properties",641 "type": "tuple[]"642 }643 ],644 "name": "setProperties",645 "outputs": [],646 "stateMutability": "nonpayable",647 "type": "function"648 },649 {650 "inputs": [651 { "internalType": "string", "name": "key", "type": "string" },652 { "internalType": "bool", "name": "isMutable", "type": "bool" },653 { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },654 { "internalType": "bool", "name": "tokenOwner", "type": "bool" }655 ],656 "name": "setTokenPropertyPermission",657 "outputs": [],658 "stateMutability": "nonpayable",659 "type": "function"660 },661 {662 "inputs": [663 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }664 ],665 "name": "supportsInterface",666 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],667 "stateMutability": "view",668 "type": "function"669 },670 {671 "inputs": [],672 "name": "symbol",673 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],674 "stateMutability": "view",675 "type": "function"676 },677 {678 "inputs": [679 { "internalType": "uint256", "name": "index", "type": "uint256" }680 ],681 "name": "tokenByIndex",682 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],683 "stateMutability": "view",684 "type": "function"685 },686 {687 "inputs": [688 { "internalType": "address", "name": "owner", "type": "address" },689 { "internalType": "uint256", "name": "index", "type": "uint256" }690 ],691 "name": "tokenOfOwnerByIndex",692 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],693 "stateMutability": "view",694 "type": "function"695 },696 {697 "inputs": [698 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }699 ],700 "name": "tokenURI",701 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],702 "stateMutability": "view",703 "type": "function"704 },705 {706 "inputs": [],707 "name": "totalSupply",708 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],709 "stateMutability": "view",710 "type": "function"711 },712 {713 "inputs": [714 { "internalType": "address", "name": "to", "type": "address" },715 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }716 ],717 "name": "transfer",718 "outputs": [],719 "stateMutability": "nonpayable",720 "type": "function"721 },722 {723 "inputs": [724 {725 "components": [726 { "internalType": "address", "name": "eth", "type": "address" },727 { "internalType": "uint256", "name": "sub", "type": "uint256" }728 ],729 "internalType": "struct EthCrossAccount",730 "name": "to",731 "type": "tuple"732 },733 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }734 ],735 "name": "transferCross",736 "outputs": [],737 "stateMutability": "nonpayable",738 "type": "function"739 },740 {741 "inputs": [742 { "internalType": "address", "name": "from", "type": "address" },743 { "internalType": "address", "name": "to", "type": "address" },744 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }745 ],746 "name": "transferFrom",747 "outputs": [],748 "stateMutability": "nonpayable",749 "type": "function"750 },751 {752 "inputs": [753 {754 "components": [755 { "internalType": "address", "name": "eth", "type": "address" },756 { "internalType": "uint256", "name": "sub", "type": "uint256" }757 ],758 "internalType": "struct EthCrossAccount",759 "name": "from",760 "type": "tuple"761 },762 {763 "components": [764 { "internalType": "address", "name": "eth", "type": "address" },765 { "internalType": "uint256", "name": "sub", "type": "uint256" }766 ],767 "internalType": "struct EthCrossAccount",768 "name": "to",769 "type": "tuple"770 },771 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }772 ],773 "name": "transferFromCross",774 "outputs": [],775 "stateMutability": "nonpayable",776 "type": "function"777 },778 {779 "inputs": [],780 "name": "uniqueCollectionType",781 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],782 "stateMutability": "view",783 "type": "function"784 }785]tests/src/eth/abi/reFungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -430,6 +430,26 @@
{
"inputs": [
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "string[]", "name": "keys", "type": "string[]" }
+ ],
+ "name": "properties",
+ "outputs": [
+ {
+ "components": [
+ { "internalType": "string", "name": "key", "type": "string" },
+ { "internalType": "bytes", "name": "value", "type": "bytes" }
+ ],
+ "internalType": "struct Property[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
{ "internalType": "string", "name": "key", "type": "string" }
],
"name": "property",
@@ -661,26 +681,6 @@
],
"name": "tokenOfOwnerByIndex",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
- { "internalType": "string[]", "name": "keys", "type": "string[]" }
- ],
- "name": "tokenProperties",
- "outputs": [
- {
- "components": [
- { "internalType": "string", "name": "key", "type": "string" },
- { "internalType": "bytes", "name": "value", "type": "bytes" }
- ],
- "internalType": "struct Property[]",
- "name": "",
- "type": "tuple[]"
- }
- ],
"stateMutability": "view",
"type": "function"
},
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -446,7 +446,7 @@
}
/// @title Unique extensions for ERC721.
-/// @dev the ERC-165 identifier for this interface is 0xb8f094a0
+/// @dev the ERC-165 identifier for this interface is 0xb74c26b7
interface ERC721UniqueExtensions is Dummy, ERC165 {
/// @notice A descriptive name for a collection of NFTs in this contract
/// @dev EVM selector for this function is: 0x06fdde03,
@@ -475,9 +475,9 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- /// @dev EVM selector for this function is: 0xefc26c69,
- /// or in textual repr: tokenProperties(uint256,string[])
- function tokenProperties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);
+ /// @dev EVM selector for this function is: 0xe07ede7e,
+ /// or in textual repr: properties(uint256,string[])
+ function properties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);
/// @notice Set or reaffirm the approved address for an NFT
/// @dev The zero address indicates there is no approved address.
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -444,7 +444,7 @@
}
/// @title Unique extensions for ERC721.
-/// @dev the ERC-165 identifier for this interface is 0x1d4b64d6
+/// @dev the ERC-165 identifier for this interface is 0x12f7d6c1
interface ERC721UniqueExtensions is Dummy, ERC165 {
/// @notice A descriptive name for a collection of NFTs in this contract
/// @dev EVM selector for this function is: 0x06fdde03,
@@ -473,9 +473,9 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- /// @dev EVM selector for this function is: 0xefc26c69,
- /// or in textual repr: tokenProperties(uint256,string[])
- function tokenProperties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);
+ /// @dev EVM selector for this function is: 0xe07ede7e,
+ /// or in textual repr: properties(uint256,string[])
+ function properties(uint256 tokenId, string[] memory keys) external view returns (Property[] memory);
/// @notice Transfer ownership of an RFT
/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
tests/src/eth/base.test.tsdiffbeforeafterboth--- a/tests/src/eth/base.test.ts
+++ b/tests/src/eth/base.test.ts
@@ -117,7 +117,7 @@
});
itEth('ERC721UniqueExtensions support', async ({helper}) => {
- await checkInterface(helper, '0xb8f094a0', true, true);
+ await checkInterface(helper, '0xb74c26b7', true, true);
});
itEth('ERC721Burnable - 0x42966c68 - support', async ({helper}) => {
tests/src/eth/tokenProperties.test.tsdiffbeforeafterboth--- a/tests/src/eth/tokenProperties.test.ts
+++ b/tests/src/eth/tokenProperties.test.ts
@@ -120,17 +120,17 @@
const address = helper.ethAddress.fromCollectionId(collection.collectionId);
const contract = helper.ethNativeContract.collection(address, mode, caller);
- expect(await contract.methods.tokenProperties(token.tokenId, []).call()).to.be.deep.equal([]);
+ expect(await contract.methods.properties(token.tokenId, []).call()).to.be.deep.equal([]);
await contract.methods.setProperties(token.tokenId, properties).send({from: caller});
const values = await token.getProperties(properties.map(p => p.key));
expect(values).to.be.deep.equal(properties.map(p => { return {key: p.key, value: p.value.toString()}; }));
- expect(await contract.methods.tokenProperties(token.tokenId, []).call()).to.be.like(properties
+ expect(await contract.methods.properties(token.tokenId, []).call()).to.be.like(properties
.map(p => { return helper.ethProperty.property(p.key, p.value.toString()); }));
- expect(await contract.methods.tokenProperties(token.tokenId, [properties[0].key]).call())
+ expect(await contract.methods.properties(token.tokenId, [properties[0].key]).call())
.to.be.like([helper.ethProperty.property(properties[0].key, properties[0].value.toString())]);
}