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.jsondiffbeforeafterboth--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -448,6 +448,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",
@@ -670,26 +690,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/abi/reFungible.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 { "internalType": "address", "name": "owner", "type": "address" }147 ],148 "name": "balanceOf",149 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],150 "stateMutability": "view",151 "type": "function"152 },153 {154 "inputs": [155 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }156 ],157 "name": "burn",158 "outputs": [],159 "stateMutability": "nonpayable",160 "type": "function"161 },162 {163 "inputs": [164 {165 "components": [166 { "internalType": "address", "name": "eth", "type": "address" },167 { "internalType": "uint256", "name": "sub", "type": "uint256" }168 ],169 "internalType": "struct EthCrossAccount",170 "name": "from",171 "type": "tuple"172 },173 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }174 ],175 "name": "burnFromCross",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": "newOwner",189 "type": "tuple"190 }191 ],192 "name": "changeCollectionOwnerCross",193 "outputs": [],194 "stateMutability": "nonpayable",195 "type": "function"196 },197 {198 "inputs": [],199 "name": "collectionAdmins",200 "outputs": [201 {202 "components": [203 { "internalType": "address", "name": "eth", "type": "address" },204 { "internalType": "uint256", "name": "sub", "type": "uint256" }205 ],206 "internalType": "struct EthCrossAccount[]",207 "name": "",208 "type": "tuple[]"209 }210 ],211 "stateMutability": "view",212 "type": "function"213 },214 {215 "inputs": [],216 "name": "collectionOwner",217 "outputs": [218 {219 "components": [220 { "internalType": "address", "name": "eth", "type": "address" },221 { "internalType": "uint256", "name": "sub", "type": "uint256" }222 ],223 "internalType": "struct EthCrossAccount",224 "name": "",225 "type": "tuple"226 }227 ],228 "stateMutability": "view",229 "type": "function"230 },231 {232 "inputs": [233 { "internalType": "string[]", "name": "keys", "type": "string[]" }234 ],235 "name": "collectionProperties",236 "outputs": [237 {238 "components": [239 { "internalType": "string", "name": "key", "type": "string" },240 { "internalType": "bytes", "name": "value", "type": "bytes" }241 ],242 "internalType": "struct Property[]",243 "name": "",244 "type": "tuple[]"245 }246 ],247 "stateMutability": "view",248 "type": "function"249 },250 {251 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],252 "name": "collectionProperty",253 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],254 "stateMutability": "view",255 "type": "function"256 },257 {258 "inputs": [],259 "name": "collectionSponsor",260 "outputs": [261 {262 "components": [263 { "internalType": "address", "name": "field_0", "type": "address" },264 { "internalType": "uint256", "name": "field_1", "type": "uint256" }265 ],266 "internalType": "struct Tuple29",267 "name": "",268 "type": "tuple"269 }270 ],271 "stateMutability": "view",272 "type": "function"273 },274 {275 "inputs": [],276 "name": "confirmCollectionSponsorship",277 "outputs": [],278 "stateMutability": "nonpayable",279 "type": "function"280 },281 {282 "inputs": [],283 "name": "contractAddress",284 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],285 "stateMutability": "view",286 "type": "function"287 },288 {289 "inputs": [290 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }291 ],292 "name": "crossOwnerOf",293 "outputs": [294 {295 "components": [296 { "internalType": "address", "name": "eth", "type": "address" },297 { "internalType": "uint256", "name": "sub", "type": "uint256" }298 ],299 "internalType": "struct EthCrossAccount",300 "name": "",301 "type": "tuple"302 }303 ],304 "stateMutability": "view",305 "type": "function"306 },307 {308 "inputs": [309 { "internalType": "string[]", "name": "keys", "type": "string[]" }310 ],311 "name": "deleteCollectionProperties",312 "outputs": [],313 "stateMutability": "nonpayable",314 "type": "function"315 },316 {317 "inputs": [318 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },319 { "internalType": "string[]", "name": "keys", "type": "string[]" }320 ],321 "name": "deleteProperties",322 "outputs": [],323 "stateMutability": "nonpayable",324 "type": "function"325 },326 {327 "inputs": [],328 "name": "description",329 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],330 "stateMutability": "view",331 "type": "function"332 },333 {334 "inputs": [],335 "name": "finishMinting",336 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],337 "stateMutability": "nonpayable",338 "type": "function"339 },340 {341 "inputs": [342 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }343 ],344 "name": "getApproved",345 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],346 "stateMutability": "view",347 "type": "function"348 },349 {350 "inputs": [],351 "name": "hasCollectionPendingSponsor",352 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],353 "stateMutability": "view",354 "type": "function"355 },356 {357 "inputs": [358 { "internalType": "address", "name": "owner", "type": "address" },359 { "internalType": "address", "name": "operator", "type": "address" }360 ],361 "name": "isApprovedForAll",362 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],363 "stateMutability": "view",364 "type": "function"365 },366 {367 "inputs": [368 {369 "components": [370 { "internalType": "address", "name": "eth", "type": "address" },371 { "internalType": "uint256", "name": "sub", "type": "uint256" }372 ],373 "internalType": "struct EthCrossAccount",374 "name": "user",375 "type": "tuple"376 }377 ],378 "name": "isOwnerOrAdminCross",379 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],380 "stateMutability": "view",381 "type": "function"382 },383 {384 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],385 "name": "mint",386 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],387 "stateMutability": "nonpayable",388 "type": "function"389 },390 {391 "inputs": [392 { "internalType": "address", "name": "to", "type": "address" },393 { "internalType": "string", "name": "tokenUri", "type": "string" }394 ],395 "name": "mintWithTokenURI",396 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],397 "stateMutability": "nonpayable",398 "type": "function"399 },400 {401 "inputs": [],402 "name": "mintingFinished",403 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],404 "stateMutability": "view",405 "type": "function"406 },407 {408 "inputs": [],409 "name": "name",410 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],411 "stateMutability": "view",412 "type": "function"413 },414 {415 "inputs": [],416 "name": "nextTokenId",417 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],418 "stateMutability": "view",419 "type": "function"420 },421 {422 "inputs": [423 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }424 ],425 "name": "ownerOf",426 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],427 "stateMutability": "view",428 "type": "function"429 },430 {431 "inputs": [432 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },433 { "internalType": "string", "name": "key", "type": "string" }434 ],435 "name": "property",436 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],437 "stateMutability": "view",438 "type": "function"439 },440 {441 "inputs": [442 {443 "components": [444 { "internalType": "address", "name": "eth", "type": "address" },445 { "internalType": "uint256", "name": "sub", "type": "uint256" }446 ],447 "internalType": "struct EthCrossAccount",448 "name": "admin",449 "type": "tuple"450 }451 ],452 "name": "removeCollectionAdminCross",453 "outputs": [],454 "stateMutability": "nonpayable",455 "type": "function"456 },457 {458 "inputs": [],459 "name": "removeCollectionSponsor",460 "outputs": [],461 "stateMutability": "nonpayable",462 "type": "function"463 },464 {465 "inputs": [466 {467 "components": [468 { "internalType": "address", "name": "eth", "type": "address" },469 { "internalType": "uint256", "name": "sub", "type": "uint256" }470 ],471 "internalType": "struct EthCrossAccount",472 "name": "user",473 "type": "tuple"474 }475 ],476 "name": "removeFromCollectionAllowListCross",477 "outputs": [],478 "stateMutability": "nonpayable",479 "type": "function"480 },481 {482 "inputs": [483 { "internalType": "address", "name": "from", "type": "address" },484 { "internalType": "address", "name": "to", "type": "address" },485 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }486 ],487 "name": "safeTransferFrom",488 "outputs": [],489 "stateMutability": "nonpayable",490 "type": "function"491 },492 {493 "inputs": [494 { "internalType": "address", "name": "from", "type": "address" },495 { "internalType": "address", "name": "to", "type": "address" },496 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },497 { "internalType": "bytes", "name": "data", "type": "bytes" }498 ],499 "name": "safeTransferFromWithData",500 "outputs": [],501 "stateMutability": "nonpayable",502 "type": "function"503 },504 {505 "inputs": [506 { "internalType": "address", "name": "operator", "type": "address" },507 { "internalType": "bool", "name": "approved", "type": "bool" }508 ],509 "name": "setApprovalForAll",510 "outputs": [],511 "stateMutability": "nonpayable",512 "type": "function"513 },514 {515 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],516 "name": "setCollectionAccess",517 "outputs": [],518 "stateMutability": "nonpayable",519 "type": "function"520 },521 {522 "inputs": [523 { "internalType": "string", "name": "limit", "type": "string" },524 { "internalType": "uint256", "name": "value", "type": "uint256" }525 ],526 "name": "setCollectionLimit",527 "outputs": [],528 "stateMutability": "nonpayable",529 "type": "function"530 },531 {532 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],533 "name": "setCollectionMintMode",534 "outputs": [],535 "stateMutability": "nonpayable",536 "type": "function"537 },538 {539 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],540 "name": "setCollectionNesting",541 "outputs": [],542 "stateMutability": "nonpayable",543 "type": "function"544 },545 {546 "inputs": [547 { "internalType": "bool", "name": "enable", "type": "bool" },548 {549 "internalType": "address[]",550 "name": "collections",551 "type": "address[]"552 }553 ],554 "name": "setCollectionNesting",555 "outputs": [],556 "stateMutability": "nonpayable",557 "type": "function"558 },559 {560 "inputs": [561 {562 "components": [563 { "internalType": "string", "name": "key", "type": "string" },564 { "internalType": "bytes", "name": "value", "type": "bytes" }565 ],566 "internalType": "struct Property[]",567 "name": "properties",568 "type": "tuple[]"569 }570 ],571 "name": "setCollectionProperties",572 "outputs": [],573 "stateMutability": "nonpayable",574 "type": "function"575 },576 {577 "inputs": [578 {579 "components": [580 { "internalType": "address", "name": "eth", "type": "address" },581 { "internalType": "uint256", "name": "sub", "type": "uint256" }582 ],583 "internalType": "struct EthCrossAccount",584 "name": "sponsor",585 "type": "tuple"586 }587 ],588 "name": "setCollectionSponsorCross",589 "outputs": [],590 "stateMutability": "nonpayable",591 "type": "function"592 },593 {594 "inputs": [595 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },596 {597 "components": [598 { "internalType": "string", "name": "key", "type": "string" },599 { "internalType": "bytes", "name": "value", "type": "bytes" }600 ],601 "internalType": "struct Property[]",602 "name": "properties",603 "type": "tuple[]"604 }605 ],606 "name": "setProperties",607 "outputs": [],608 "stateMutability": "nonpayable",609 "type": "function"610 },611 {612 "inputs": [613 { "internalType": "string", "name": "key", "type": "string" },614 { "internalType": "bool", "name": "isMutable", "type": "bool" },615 { "internalType": "bool", "name": "collectionAdmin", "type": "bool" },616 { "internalType": "bool", "name": "tokenOwner", "type": "bool" }617 ],618 "name": "setTokenPropertyPermission",619 "outputs": [],620 "stateMutability": "nonpayable",621 "type": "function"622 },623 {624 "inputs": [625 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }626 ],627 "name": "supportsInterface",628 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],629 "stateMutability": "view",630 "type": "function"631 },632 {633 "inputs": [],634 "name": "symbol",635 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],636 "stateMutability": "view",637 "type": "function"638 },639 {640 "inputs": [641 { "internalType": "uint256", "name": "index", "type": "uint256" }642 ],643 "name": "tokenByIndex",644 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],645 "stateMutability": "view",646 "type": "function"647 },648 {649 "inputs": [650 { "internalType": "uint256", "name": "token", "type": "uint256" }651 ],652 "name": "tokenContractAddress",653 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],654 "stateMutability": "view",655 "type": "function"656 },657 {658 "inputs": [659 { "internalType": "address", "name": "owner", "type": "address" },660 { "internalType": "uint256", "name": "index", "type": "uint256" }661 ],662 "name": "tokenOfOwnerByIndex",663 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],664 "stateMutability": "view",665 "type": "function"666 },667 {668 "inputs": [669 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },670 { "internalType": "string[]", "name": "keys", "type": "string[]" }671 ],672 "name": "tokenProperties",673 "outputs": [674 {675 "components": [676 { "internalType": "string", "name": "key", "type": "string" },677 { "internalType": "bytes", "name": "value", "type": "bytes" }678 ],679 "internalType": "struct Property[]",680 "name": "",681 "type": "tuple[]"682 }683 ],684 "stateMutability": "view",685 "type": "function"686 },687 {688 "inputs": [689 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }690 ],691 "name": "tokenURI",692 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],693 "stateMutability": "view",694 "type": "function"695 },696 {697 "inputs": [],698 "name": "totalSupply",699 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],700 "stateMutability": "view",701 "type": "function"702 },703 {704 "inputs": [705 { "internalType": "address", "name": "to", "type": "address" },706 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }707 ],708 "name": "transfer",709 "outputs": [],710 "stateMutability": "nonpayable",711 "type": "function"712 },713 {714 "inputs": [715 {716 "components": [717 { "internalType": "address", "name": "eth", "type": "address" },718 { "internalType": "uint256", "name": "sub", "type": "uint256" }719 ],720 "internalType": "struct EthCrossAccount",721 "name": "to",722 "type": "tuple"723 },724 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }725 ],726 "name": "transferCross",727 "outputs": [],728 "stateMutability": "nonpayable",729 "type": "function"730 },731 {732 "inputs": [733 { "internalType": "address", "name": "from", "type": "address" },734 { "internalType": "address", "name": "to", "type": "address" },735 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }736 ],737 "name": "transferFrom",738 "outputs": [],739 "stateMutability": "nonpayable",740 "type": "function"741 },742 {743 "inputs": [744 {745 "components": [746 { "internalType": "address", "name": "eth", "type": "address" },747 { "internalType": "uint256", "name": "sub", "type": "uint256" }748 ],749 "internalType": "struct EthCrossAccount",750 "name": "from",751 "type": "tuple"752 },753 {754 "components": [755 { "internalType": "address", "name": "eth", "type": "address" },756 { "internalType": "uint256", "name": "sub", "type": "uint256" }757 ],758 "internalType": "struct EthCrossAccount",759 "name": "to",760 "type": "tuple"761 },762 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }763 ],764 "name": "transferFromCross",765 "outputs": [],766 "stateMutability": "nonpayable",767 "type": "function"768 },769 {770 "inputs": [],771 "name": "uniqueCollectionType",772 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],773 "stateMutability": "view",774 "type": "function"775 }776]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())]);
}