difftreelog
bench and contract added
in: master
20 files changed
bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.abidiffbeforeafterboth--- /dev/null
+++ b/bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.abi
@@ -0,0 +1 @@
+[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_toEth","type":"address"},{"indexed":false,"internalType":"uint256","name":"_toSub","type":"uint256"},{"indexed":false,"internalType":"address","name":"_collection","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MintToSub","type":"event"},{"inputs":[{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_substrateReceiver","type":"uint256"}],"name":"mintToSubstrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_substrateReceiver","type":"uint256"},{"components":[{"internalType":"string","name":"field_0","type":"string"},{"internalType":"bytes","name":"field_1","type":"bytes"}],"internalType":"struct Tuple21[]","name":"_properties","type":"tuple[]"}],"name":"mintToSubstrateBulkProperty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_substrateReceiver","type":"uint256"},{"components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"internalType":"struct Property[]","name":"properties","type":"tuple[]"}],"name":"mintToSubstrateWithProperty","outputs":[],"stateMutability":"nonpayable","type":"function"}]
\ No newline at end of file
bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.bindiffbeforeafterboth--- /dev/null
+++ b/bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.bin
@@ -0,0 +1 @@
+608060405234801561001057600080fd5b506111d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633a0dbb1a14610046578063440dff9d1461005b5780637a8d97861461006e575b600080fd5b610059610054366004610d6f565b610081565b005b610059610069366004610d6f565b610472565b61005961007c366004610dc9565b6109fb565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed9190610df3565b6101125760405162461bcd60e51b815260040161010990610e1c565b60405180910390fd5b82806101555760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561019a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101c29190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201156104165760408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b81523060048201528a906001600160a01b03821690636a627842906024016020604051808303816000875af11580156102a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c69190610f4c565b604051630a769d3760e11b81529092506001600160a01b038216906314ed3a6e906102f99085908d908d90600401610fd4565b600060405180830381600087803b15801561031357600080fd5b505af1158015610327573d6000803e3d6000fd5b5050604080518082018252308152600060208083018290528351808501855291825281018f9052915163d5cf430b60e01b81526001600160a01b038616945063d5cf430b935061037c92908790600401611088565b600060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b5050505050610416565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b6064820152608401610109565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190610df3565b6104fa5760405162461bcd60e51b815260040161010990610e1c565b828061053d5760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610582573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105aa9190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016108065760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c85818110610701576107016110c1565b905060200281019061071391906110d7565b61071d90806110f7565b8e8e8781811061072f5761072f6110c1565b905060200281019061074191906110d7565b61074f9060208101906110f7565b6040518663ffffffff1660e01b815260040161076f95949392919061113e565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050806107ab90611177565b90506106d7565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b9261037c929091908790600401611088565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b45760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c8581811061094a5761094a6110c1565b905060200281019061095c91906110d7565b61096690806110f7565b8e8e87818110610978576109786110c1565b905060200281019061098a91906110d7565b6109989060208101906110f7565b6040518663ffffffff1660e01b81526004016109b895949392919061113e565b600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050806109f490611177565b9050610920565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190610df3565b610a835760405162461bcd60e51b815260040161010990610e1c565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af09190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201610c3e576040516335313c2160e11b815230600482015287906001600160a01b03821690636a627842906024015b6020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f4c565b604080518082018252308152600060208083018290528351808501855291825281018b9052915163d5cf430b60e01b81529294506001600160a01b0384169263d5cf430b92610c0692918790600401611088565b600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b5050505050610cae565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b815230600482015287906001600160a01b03821690636a62784290602401610b6f565b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610d1e57600080fd5b919050565b60008083601f840112610d3557600080fd5b50813567ffffffffffffffff811115610d4d57600080fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b60008060008060608587031215610d8557600080fd5b610d8e85610d07565b935060208501359250604085013567ffffffffffffffff811115610db157600080fd5b610dbd87828801610d23565b95989497509550505050565b60008060408385031215610ddc57600080fd5b610de583610d07565b946020939093013593505050565b600060208284031215610e0557600080fd5b81518015158114610e1557600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610e9557600080fd5b825167ffffffffffffffff80821115610ead57600080fd5b818501915085601f830112610ec157600080fd5b815181811115610ed357610ed3610e6c565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e6c565b816040528281528886848701011115610f1357600080fd5b600093505b82841015610f355784840186015181850187015292850192610f18565b600086848301015280965050505050505092915050565b600060208284031215610f5e57600080fd5b5051919050565b6000808335601e19843603018112610f7c57600080fd5b830160208101925035905067ffffffffffffffff811115610f9c57600080fd5b803603821315610d6857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006040808301868452602082818601528186835260608601905060608760051b8701019250876000805b8981101561107857888603605f190184528235368c9003603e19018112611024578283fd5b8b016110308180610f65565b8989526110408a8a018284610fab565b91505061104f87830183610f65565b9250888203888a0152611063828483610fab565b98505050938501935091840191600101610fff565b50939a9950505050505050505050565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a00190565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126110ed57600080fd5b9190910192915050565b6000808335601e1984360301811261110e57600080fd5b83018035915067ffffffffffffffff82111561112957600080fd5b602001915036819003821315610d6857600080fd5b858152606060208201526000611158606083018688610fab565b828103604084015261116b818587610fab565b98975050505050505050565b60006001820161119757634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206fee43cab49543809f191e238525b8a47306c665c42f86e318153d2b9e9d1de064736f6c63430008110033
\ No newline at end of file
bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.jsondiffbeforeafterboth--- /dev/null
+++ b/bin/tests/src/eth/evmToSubstrate/EvmToSubstrate.json
@@ -0,0 +1,7415 @@
+{
+ "contractName": "EvmToSubstrate",
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_toEth",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_toSub",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintToSub",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "_properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintToSubstrateBulkProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Property[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_toEth\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toSub\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MintToSub\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"}],\"name\":\"mintToSubstrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"_properties\",\"type\":\"tuple[]\"}],\"name\":\"mintToSubstrateBulkProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Property[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"mintToSubstrateWithProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"MintToSub(address,uint256,address,uint256)\":{\"details\":\"This emits when a mint to a substrate address has been made.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":\"EvmToSubstrate\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":{\"keccak256\":\"0x36f13dcad1a598bad13e4019319da9ca6161782448bd7fc698c1e265140e5460\",\"license\":\"Apache License\",\"urls\":[\"bzz-raw://2e32be5bdb8265a44cbdb50306ea53fb56c52dbbe7b8d742af30f46e48133e13\",\"dweb:/ipfs/QmZfaDgiXDvyERJvYuvGXWT5FeRpPSdH5UuGgDnDxP5RVk\"]}},\"version\":1}",
+ "bytecode": "608060405234801561001057600080fd5b506111d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633a0dbb1a14610046578063440dff9d1461005b5780637a8d97861461006e575b600080fd5b610059610054366004610d6f565b610081565b005b610059610069366004610d6f565b610472565b61005961007c366004610dc9565b6109fb565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed9190610df3565b6101125760405162461bcd60e51b815260040161010990610e1c565b60405180910390fd5b82806101555760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561019a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101c29190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201156104165760408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b81523060048201528a906001600160a01b03821690636a627842906024016020604051808303816000875af11580156102a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c69190610f4c565b604051630a769d3760e11b81529092506001600160a01b038216906314ed3a6e906102f99085908d908d90600401610fd4565b600060405180830381600087803b15801561031357600080fd5b505af1158015610327573d6000803e3d6000fd5b5050604080518082018252308152600060208083018290528351808501855291825281018f9052915163d5cf430b60e01b81526001600160a01b038616945063d5cf430b935061037c92908790600401611088565b600060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b5050505050610416565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b6064820152608401610109565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190610df3565b6104fa5760405162461bcd60e51b815260040161010990610e1c565b828061053d5760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610582573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105aa9190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016108065760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c85818110610701576107016110c1565b905060200281019061071391906110d7565b61071d90806110f7565b8e8e8781811061072f5761072f6110c1565b905060200281019061074191906110d7565b61074f9060208101906110f7565b6040518663ffffffff1660e01b815260040161076f95949392919061113e565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050806107ab90611177565b90506106d7565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b9261037c929091908790600401611088565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b45760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c8581811061094a5761094a6110c1565b905060200281019061095c91906110d7565b61096690806110f7565b8e8e87818110610978576109786110c1565b905060200281019061098a91906110d7565b6109989060208101906110f7565b6040518663ffffffff1660e01b81526004016109b895949392919061113e565b600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050806109f490611177565b9050610920565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190610df3565b610a835760405162461bcd60e51b815260040161010990610e1c565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af09190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201610c3e576040516335313c2160e11b815230600482015287906001600160a01b03821690636a627842906024015b6020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f4c565b604080518082018252308152600060208083018290528351808501855291825281018b9052915163d5cf430b60e01b81529294506001600160a01b0384169263d5cf430b92610c0692918790600401611088565b600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b5050505050610cae565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b815230600482015287906001600160a01b03821690636a62784290602401610b6f565b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610d1e57600080fd5b919050565b60008083601f840112610d3557600080fd5b50813567ffffffffffffffff811115610d4d57600080fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b60008060008060608587031215610d8557600080fd5b610d8e85610d07565b935060208501359250604085013567ffffffffffffffff811115610db157600080fd5b610dbd87828801610d23565b95989497509550505050565b60008060408385031215610ddc57600080fd5b610de583610d07565b946020939093013593505050565b600060208284031215610e0557600080fd5b81518015158114610e1557600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610e9557600080fd5b825167ffffffffffffffff80821115610ead57600080fd5b818501915085601f830112610ec157600080fd5b815181811115610ed357610ed3610e6c565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e6c565b816040528281528886848701011115610f1357600080fd5b600093505b82841015610f355784840186015181850187015292850192610f18565b600086848301015280965050505050505092915050565b600060208284031215610f5e57600080fd5b5051919050565b6000808335601e19843603018112610f7c57600080fd5b830160208101925035905067ffffffffffffffff811115610f9c57600080fd5b803603821315610d6857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006040808301868452602082818601528186835260608601905060608760051b8701019250876000805b8981101561107857888603605f190184528235368c9003603e19018112611024578283fd5b8b016110308180610f65565b8989526110408a8a018284610fab565b91505061104f87830183610f65565b9250888203888a0152611063828483610fab565b98505050938501935091840191600101610fff565b50939a9950505050505050505050565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a00190565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126110ed57600080fd5b9190910192915050565b6000808335601e1984360301811261110e57600080fd5b83018035915067ffffffffffffffff82111561112957600080fd5b602001915036819003821315610d6857600080fd5b858152606060208201526000611158606083018688610fab565b828103604084015261116b818587610fab565b98975050505050505050565b60006001820161119757634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206fee43cab49543809f191e238525b8a47306c665c42f86e318153d2b9e9d1de064736f6c63430008110033",
+ "deployedBytecode": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633a0dbb1a14610046578063440dff9d1461005b5780637a8d97861461006e575b600080fd5b610059610054366004610d6f565b610081565b005b610059610069366004610d6f565b610472565b61005961007c366004610dc9565b6109fb565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed9190610df3565b6101125760405162461bcd60e51b815260040161010990610e1c565b60405180910390fd5b82806101555760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561019a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101c29190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201156104165760408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b81523060048201528a906001600160a01b03821690636a627842906024016020604051808303816000875af11580156102a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c69190610f4c565b604051630a769d3760e11b81529092506001600160a01b038216906314ed3a6e906102f99085908d908d90600401610fd4565b600060405180830381600087803b15801561031357600080fd5b505af1158015610327573d6000803e3d6000fd5b5050604080518082018252308152600060208083018290528351808501855291825281018f9052915163d5cf430b60e01b81526001600160a01b038616945063d5cf430b935061037c92908790600401611088565b600060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b5050505050610416565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b6064820152608401610109565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190610df3565b6104fa5760405162461bcd60e51b815260040161010990610e1c565b828061053d5760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610582573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105aa9190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016108065760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c85818110610701576107016110c1565b905060200281019061071391906110d7565b61071d90806110f7565b8e8e8781811061072f5761072f6110c1565b905060200281019061074191906110d7565b61074f9060208101906110f7565b6040518663ffffffff1660e01b815260040161076f95949392919061113e565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050806107ab90611177565b90506106d7565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b9261037c929091908790600401611088565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b45760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c8581811061094a5761094a6110c1565b905060200281019061095c91906110d7565b61096690806110f7565b8e8e87818110610978576109786110c1565b905060200281019061098a91906110d7565b6109989060208101906110f7565b6040518663ffffffff1660e01b81526004016109b895949392919061113e565b600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050806109f490611177565b9050610920565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190610df3565b610a835760405162461bcd60e51b815260040161010990610e1c565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af09190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201610c3e576040516335313c2160e11b815230600482015287906001600160a01b03821690636a627842906024015b6020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f4c565b604080518082018252308152600060208083018290528351808501855291825281018b9052915163d5cf430b60e01b81529294506001600160a01b0384169263d5cf430b92610c0692918790600401611088565b600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b5050505050610cae565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b815230600482015287906001600160a01b03821690636a62784290602401610b6f565b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610d1e57600080fd5b919050565b60008083601f840112610d3557600080fd5b50813567ffffffffffffffff811115610d4d57600080fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b60008060008060608587031215610d8557600080fd5b610d8e85610d07565b935060208501359250604085013567ffffffffffffffff811115610db157600080fd5b610dbd87828801610d23565b95989497509550505050565b60008060408385031215610ddc57600080fd5b610de583610d07565b946020939093013593505050565b600060208284031215610e0557600080fd5b81518015158114610e1557600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610e9557600080fd5b825167ffffffffffffffff80821115610ead57600080fd5b818501915085601f830112610ec157600080fd5b815181811115610ed357610ed3610e6c565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e6c565b816040528281528886848701011115610f1357600080fd5b600093505b82841015610f355784840186015181850187015292850192610f18565b600086848301015280965050505050505092915050565b600060208284031215610f5e57600080fd5b5051919050565b6000808335601e19843603018112610f7c57600080fd5b830160208101925035905067ffffffffffffffff811115610f9c57600080fd5b803603821315610d6857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006040808301868452602082818601528186835260608601905060608760051b8701019250876000805b8981101561107857888603605f190184528235368c9003603e19018112611024578283fd5b8b016110308180610f65565b8989526110408a8a018284610fab565b91505061104f87830183610f65565b9250888203888a0152611063828483610fab565b98505050938501935091840191600101610fff565b50939a9950505050505050505050565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a00190565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126110ed57600080fd5b9190910192915050565b6000808335601e1984360301811261110e57600080fd5b83018035915067ffffffffffffffff82111561112957600080fd5b602001915036819003821315610d6857600080fd5b858152606060208201526000611158606083018688610fab565b828103604084015261116b818587610fab565b98975050505050505050565b60006001820161119757634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206fee43cab49543809f191e238525b8a47306c665c42f86e318153d2b9e9d1de064736f6c63430008110033",
+ "sourceMap": "673:5833:5:-:0;;;;;;;;;;;;;;;;;;;",
+ "deployedSourceMap": "673:5833:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5448:1056;;;;;;:::i;:::-;;:::i;:::-;;3688:1757;;;;;;:::i;:::-;;:::i;2212:1473::-;;;;;;:::i;:::-;;:::i;5448:1056::-;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;5606:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;;;;;;;;;5650:11;5680:20;5672:51:::1;;;::::0;-1:-1:-1;;;5672:51:5;;3202:2:6;5672:51:5::1;::::0;::::1;3184:21:6::0;3241:2;3221:18;;;3214:30;-1:-1:-1;;;3260:18:6;;;3253:48;3318:18;;5672:51:5::1;3000:342:6::0;5672:51:5::1;5728:25;5767:11;5728:51;;5783:22;5824:14;-1:-1:-1::0;;;;;5824:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;5824:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5808:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;5808:55;-1:-1:-1;5867:15:5::1;5891:44:::0;;;5887:541;::::1;;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;5949:45;;;5945:483:::1;;6109:33;::::0;-1:-1:-1;;;6109:33:5;;6136:4:::1;6109:33;::::0;::::1;2239:51:6::0;6037:11:5;;-1:-1:-1;;;;;6109:18:5;::::1;::::0;::::1;::::0;2212::6;;6109:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6148:49;::::0;-1:-1:-1;;;6148:49:5;;6099:43;;-1:-1:-1;;;;;;6148:27:5;::::1;::::0;::::1;::::0;:49:::1;::::0;6099:43;;6185:11;;;;6148:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6240:35:5::1;::::0;;;;::::1;::::0;;6266:4:::1;6240:35:::0;;-1:-1:-1;6240:35:5::1;::::0;;::::1;::::0;;;6281:49;;;;::::1;::::0;;;;;;::::1;::::0;;;6203:145;;-1:-1:-1;;;6203:145:5;;-1:-1:-1;;;;;6203:31:5;::::1;::::0;-1:-1:-1;6203:31:5::1;::::0;-1:-1:-1;6203:145:5::1;::::0;6281:49;6336:7;;6203:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5996:357;5945:483;;;6364:59;::::0;-1:-1:-1;;;6364:59:5;;7944:2:6;6364:59:5::1;::::0;::::1;7926:21:6::0;7983:2;7963:18;;;7956:30;8022:34;8002:18;;;7995:62;-1:-1:-1;;;8073:18:6;;;8066:47;8130:19;;6364:59:5::1;7742:413:6::0;5945:483:5::1;6437:63;::::0;;6455:1:::1;8429:34:6::0;;8494:2;8479:18;;8472:34;;;-1:-1:-1;;;;;8542:15:6;;8522:18;;;8515:43;8589:2;8574:18;;8567:34;;;6437:63:5;;::::1;::::0;;;;8378:3:6;6437:63:5;;::::1;5619:885;;;;1159:889:::0;5448:1056;;;;;:::o;3688:1757::-;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;3842:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;4035:10;4064:20;4056:51:::1;;;::::0;-1:-1:-1;;;4056:51:5;;3202:2:6;4056:51:5::1;::::0;::::1;3184:21:6::0;3241:2;3221:18;;;3214:30;-1:-1:-1;;;3260:18:6;;;3253:48;3318:18;;4056:51:5::1;3000:342:6::0;4056:51:5::1;4112:25;4151:11;4112:51;;4167:22;4208:14;-1:-1:-1::0;;;;;4208:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4208:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4192:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;4192:55;-1:-1:-1;4251:15:5::1;4275:44:::0;;;4271:1046:::1;;4326:30;4376:11;4326:62;;4403:13;-1:-1:-1::0;;;;;4403:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4435:33;::::0;-1:-1:-1;;;4435:33:5;;4462:4:::1;4435:33;::::0;::::1;2239:51:6::0;4393:37:5;;-1:-1:-1;;;;;;4435:18:5;::::1;::::0;::::1;::::0;2212::6;;4435:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4478:9;4473:133;4497:16;4493:1;:20;4473:133;;;4526:13;-1:-1:-1::0;;;;;4526:25:5::1;;4552:7;4561:10;;4572:1;4561:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;4580:10;;4591:1;4580:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;4526:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4515:3;;;;:::i;:::-;;;4473:133;;;-1:-1:-1::0;4647:35:5::1;::::0;;;;::::1;::::0;;4673:4:::1;4647:35:::0;;-1:-1:-1;4647:35:5::1;::::0;;::::1;::::0;;;4688:49;;;;::::1;::::0;;;;;;::::1;::::0;;;4610:145;;-1:-1:-1;;;4610:145:5;;-1:-1:-1;;;;;4610:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;4647:35;;4688:49;4743:7;;4610:145:::1;;;:::i;4271:1046::-;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;4770:45;;;4766:551:::1;;4822:23;4858:11;4822:48;;4885:13;-1:-1:-1::0;;;;;4885:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4917:33;::::0;-1:-1:-1;;;4917:33:5;;4944:4:::1;4917:33;::::0;::::1;2239:51:6::0;4875:37:5;;-1:-1:-1;;;;;;4917:18:5;::::1;::::0;::::1;::::0;2212::6;;4917:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4960:9;4955:133;4979:16;4975:1;:20;4955:133;;;5008:13;-1:-1:-1::0;;;;;5008:25:5::1;;5034:7;5043:10;;5054:1;5043:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;5062:10;;5073:1;5062:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;5008:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4997:3;;;;:::i;:::-;;;4955:133;;2212:1473:::0;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;2313:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;2476:25:::1;2515:11;2476:51;;2531:22;2572:14;-1:-1:-1::0;;;;;2572:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;2572:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;2556:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;2556:55;-1:-1:-1;2615:15:5::1;2639:44:::0;;;2635:759:::1;;2771:33;::::0;-1:-1:-1;;;2771:33:5;;2798:4:::1;2771:33;::::0;::::1;2239:51:6::0;2740:11:5;;-1:-1:-1;;;;;2771:18:5;::::1;::::0;::::1;::::0;2212::6;;2771:33:5::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2847:35;::::0;;;;::::1;::::0;;2873:4:::1;2847:35:::0;;-1:-1:-1;2847:35:5::1;::::0;;::::1;::::0;;;2888:49;;;;::::1;::::0;;;;;;::::1;::::0;;;2810:145;;-1:-1:-1;;;2810:145:5;;2761:43;;-1:-1:-1;;;;;;2810:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;2847:35;2761:43;;2810:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2685:275;2635:759;;;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;2970:45;;;2966:428:::1;;3130:33;::::0;-1:-1:-1;;;3130:33:5;;3157:4:::1;3130:33;::::0;::::1;2239:51:6::0;3058:11:5;;-1:-1:-1;;;;;3130:18:5;::::1;::::0;::::1;::::0;2212::6;;3130:33:5::1;2093:203:6::0;2966:428:5::1;3618:63;::::0;;3636:1:::1;8429:34:6::0;;8494:2;8479:18;;8472:34;;;-1:-1:-1;;;;;8542:15:6;;8522:18;;;8515:43;8589:2;8574:18;;8567:34;;;3618:63:5;;::::1;::::0;;;;8378:3:6;3618:63:5;;::::1;2326:1359;;;1159:889:::0;2212:1473;;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:383::-;271:8;281:6;335:3;328:4;320:6;316:17;312:27;302:55;;353:1;350;343:12;302:55;-1:-1:-1;376:20:6;;419:18;408:30;;405:50;;;451:1;448;441:12;405:50;488:4;480:6;476:17;464:29;;548:3;541:4;531:6;528:1;524:14;516:6;512:27;508:38;505:47;502:67;;;565:1;562;555:12;502:67;192:383;;;;;:::o;580:621::-;710:6;718;726;734;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;:::-;816:39;;902:2;891:9;887:18;874:32;864:42;;957:2;946:9;942:18;929:32;984:18;976:6;973:30;970:50;;;1016:1;1013;1006:12;970:50;1055:86;1133:7;1124:6;1113:9;1109:22;1055:86;:::i;:::-;580:621;;;;-1:-1:-1;1160:8:6;-1:-1:-1;;;;580:621:6:o;1834:254::-;1902:6;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2002:29;2021:9;2002:29;:::i;:::-;1992:39;2078:2;2063:18;;;;2050:32;;-1:-1:-1;;;1834:254:6:o;2301:277::-;2368:6;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2469:9;2463:16;2522:5;2515:13;2508:21;2501:5;2498:32;2488:60;;2544:1;2541;2534:12;2488:60;2567:5;2301:277;-1:-1:-1;;;2301:277:6:o;2583:412::-;2785:2;2767:21;;;2824:2;2804:18;;;2797:30;2863:34;2858:2;2843:18;;2836:62;-1:-1:-1;;;2929:2:6;2914:18;;2907:46;2985:3;2970:19;;2583:412::o;3347:127::-;3408:10;3403:3;3399:20;3396:1;3389:31;3439:4;3436:1;3429:15;3463:4;3460:1;3453:15;3479:1042;3559:6;3590:2;3633;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3682:9;3676:16;3711:18;3752:2;3744:6;3741:14;3738:34;;;3768:1;3765;3758:12;3738:34;3806:6;3795:9;3791:22;3781:32;;3851:7;3844:4;3840:2;3836:13;3832:27;3822:55;;3873:1;3870;3863:12;3822:55;3902:2;3896:9;3924:2;3920;3917:10;3914:36;;;3930:18;;:::i;:::-;4005:2;3999:9;3973:2;4059:13;;-1:-1:-1;;4055:22:6;;;4079:2;4051:31;4047:40;4035:53;;;4103:18;;;4123:22;;;4100:46;4097:72;;;4149:18;;:::i;:::-;4189:10;4185:2;4178:22;4224:2;4216:6;4209:18;4264:7;4259:2;4254;4250;4246:11;4242:20;4239:33;4236:53;;;4285:1;4282;4275:12;4236:53;4307:1;4298:10;;4317:129;4331:2;4328:1;4325:9;4317:129;;;4419:10;;;4415:19;;4409:26;4388:14;;;4384:23;;4377:59;4342:10;;;;4317:129;;;4488:1;4483:2;4478;4470:6;4466:15;4462:24;4455:35;4509:6;4499:16;;;;;;;;3479:1042;;;;:::o;4526:184::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:16:6;;4526:184;-1:-1:-1;4526:184:6:o;4715:501::-;4774:5;4781:6;4841:3;4828:17;4927:2;4923:7;4912:8;4896:14;4892:29;4888:43;4868:18;4864:68;4854:96;;4946:1;4943;4936:12;4854:96;4974:33;;5078:4;5065:18;;;-1:-1:-1;5026:21:6;;-1:-1:-1;5106:18:6;5095:30;;5092:50;;;5138:1;5135;5128:12;5092:50;5185:6;5169:14;5165:27;5158:5;5154:39;5151:59;;;5206:1;5203;5196:12;5221:267;5310:6;5305:3;5298:19;5362:6;5355:5;5348:4;5343:3;5339:14;5326:43;-1:-1:-1;5414:1:6;5389:16;;;5407:4;5385:27;;;5378:38;;;;5470:2;5449:15;;;-1:-1:-1;;5445:29:6;5436:39;;;5432:50;;5221:267::o;5493:1549::-;5723:4;5752:2;5792;5781:9;5777:18;5822:6;5811:9;5804:25;5848:2;5886;5881;5870:9;5866:18;5859:30;5909:6;5939;5931;5924:22;5977:2;5966:9;5962:18;5955:25;;6039:2;6029:6;6026:1;6022:14;6011:9;6007:30;6003:39;5989:53;;6065:6;6089:1;6110;6120:893;6136:6;6131:3;6128:15;6120:893;;;6205:22;;;-1:-1:-1;;6201:36:6;6189:49;;6277:20;;6352:14;6348:27;;;-1:-1:-1;;6344:41:6;6320:66;;6310:94;;6400:1;6397;6390:12;6310:94;6430:31;;6508:45;6430:31;;6508:45;:::i;:::-;6581:2;6573:6;6566:18;6611:71;6678:2;6670:6;6666:15;6652:12;6638;6611:71;:::i;:::-;6597:85;;;6733:54;6783:2;6776:5;6772:14;6765:5;6733:54;:::i;:::-;6695:92;;6836:6;6828;6824:19;6819:2;6811:6;6807:15;6800:44;6867:66;6926:6;6910:14;6894;6867:66;:::i;:::-;6857:76;-1:-1:-1;;;6991:12:6;;;;-1:-1:-1;6956:15:6;;;;6162:1;6153:11;6120:893;;;-1:-1:-1;7030:6:6;;5493:1549;-1:-1:-1;;;;;;;;;;5493:1549:6:o;7234:503::-;7132:12;;-1:-1:-1;;;;;7128:38:6;;;7116:51;;7216:4;7205:16;;;7199:23;7183:14;;;7176:47;7132:12;;7128:38;7683:2;7668:18;;7116:51;7205:16;;;;7199:23;7183:14;;;7176:47;7718:3;7703:19;;7696:35;;;;7552:3;7537:19;;7234:503::o;8612:127::-;8673:10;8668:3;8664:20;8661:1;8654:31;8704:4;8701:1;8694:15;8728:4;8725:1;8718:15;8744:325;8838:4;8896:11;8883:25;8990:2;8986:7;8975:8;8959:14;8955:29;8951:43;8931:18;8927:68;8917:96;;9009:1;9006;8999:12;8917:96;9030:33;;;;;8744:325;-1:-1:-1;;8744:325:6:o;9074:522::-;9152:4;9158:6;9218:11;9205:25;9312:2;9308:7;9297:8;9281:14;9277:29;9273:43;9253:18;9249:68;9239:96;;9331:1;9328;9321:12;9239:96;9358:33;;9410:20;;;-1:-1:-1;9453:18:6;9442:30;;9439:50;;;9485:1;9482;9475:12;9439:50;9518:4;9506:17;;-1:-1:-1;9549:14:6;9545:27;;;9535:38;;9532:58;;;9586:1;9583;9576:12;10127:506;10370:6;10359:9;10352:25;10413:2;10408;10397:9;10393:18;10386:30;10333:4;10439:62;10497:2;10486:9;10482:18;10474:6;10466;10439:62;:::i;:::-;10549:9;10541:6;10537:22;10532:2;10521:9;10517:18;10510:50;10577;10620:6;10612;10604;10577:50;:::i;:::-;10569:58;10127:506;-1:-1:-1;;;;;;;;10127:506:6:o;10638:232::-;10677:3;10698:17;;;10695:140;;10757:10;10752:3;10748:20;10745:1;10738:31;10792:4;10789:1;10782:15;10820:4;10817:1;10810:15;10695:140;-1:-1:-1;10862:1:6;10851:13;;10638:232::o",
+ "sourcePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol",
+ "compiler": {
+ "name": "solc",
+ "version": "0.8.17+commit.8df45f5f"
+ },
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol",
+ "exportedSymbols": {
+ "Collection": [
+ 1248
+ ],
+ "CollectionHelpers": [
+ 99
+ ],
+ "ContractHelpers": [
+ 282
+ ],
+ "EvmToSubstrate": [
+ 2269
+ ],
+ "NftCrossAccountId": [
+ 610
+ ],
+ "NftProperty": [
+ 620
+ ],
+ "Property": [
+ 1762
+ ],
+ "RftCrossAccountId": [
+ 1253
+ ],
+ "RftProperties": [
+ 1263
+ ],
+ "TokenProperties": [
+ 357
+ ],
+ "UniqueNFT": [
+ 930
+ ],
+ "UniqueRefungible": [
+ 1572
+ ],
+ "UniqueRefungibleToken": [
+ 1739
+ ]
+ },
+ "id": 2270,
+ "license": "Apache License",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1741,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "44:24:5"
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol",
+ "file": "../api/CollectionHelpers.sol",
+ "id": 1743,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 100,
+ "src": "69:63:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1742,
+ "name": "CollectionHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 99,
+ "src": "77:17:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol",
+ "file": "../api/ContractHelpers.sol",
+ "id": 1745,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 288,
+ "src": "133:59:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1744,
+ "name": "ContractHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 282,
+ "src": "141:15:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol",
+ "file": "../api/UniqueRefungibleToken.sol",
+ "id": 1747,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 1740,
+ "src": "193:71:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1746,
+ "name": "UniqueRefungibleToken",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1739,
+ "src": "201:21:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol",
+ "file": "../api/UniqueRefungible.sol",
+ "id": 1752,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 1573,
+ "src": "265:137:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1748,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "273:16:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1749,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "291:10:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1750,
+ "name": "EthCrossAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "303:15:5",
+ "typeDescriptions": {}
+ },
+ "local": "RftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1751,
+ "name": "Tuple20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "341:7:5",
+ "typeDescriptions": {}
+ },
+ "local": "RftProperties",
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol",
+ "file": "../api/UniqueNFT.sol",
+ "id": 1757,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 931,
+ "src": "403:126:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1753,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "411:9:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1754,
+ "name": "EthCrossAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "422:15:5",
+ "typeDescriptions": {}
+ },
+ "local": "NftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1755,
+ "name": "Tuple21",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 620,
+ "src": "460:7:5",
+ "typeDescriptions": {}
+ },
+ "local": "NftProperty",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1756,
+ "name": "TokenProperties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 357,
+ "src": "484:15:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "canonicalName": "Property",
+ "id": 1762,
+ "members": [
+ {
+ "constant": false,
+ "id": 1759,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "557:3:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1762,
+ "src": "550:10:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1758,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "550:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1761,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "569:5:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1762,
+ "src": "563:11:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1760,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "563:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Property",
+ "nameLocation": "538:8:5",
+ "nodeType": "StructDefinition",
+ "scope": 2270,
+ "src": "531:46:5",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "EvmToSubstrate",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2269,
+ "linearizedBaseContracts": [
+ 2269
+ ],
+ "name": "EvmToSubstrate",
+ "nameLocation": "682:14:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 1770,
+ "mutability": "constant",
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "717:26:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2269,
+ "src": "700:76:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1763,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "700:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "526546756e6769626c65",
+ "id": 1767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "762:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ },
+ "value": "ReFungible"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ }
+ ],
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "756:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1765,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "756:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1768,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "756:19:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1764,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "746:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "746:30:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 1778,
+ "mutability": "constant",
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "796:27:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2269,
+ "src": "779:70:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1771,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "779:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4e4654",
+ "id": 1775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "842:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ },
+ "value": "NFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ }
+ ],
+ "id": 1774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "836:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1773,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "836:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "836:12:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1772,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "826:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "826:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1799,
+ "nodeType": "Block",
+ "src": "1159:889:5",
+ "statements": [
+ {
+ "assignments": [
+ 1784
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1784,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "1174:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1799,
+ "src": "1163:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1783,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1782,
+ "name": "Collection",
+ "nameLocations": [
+ "1163:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "1163:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "1163:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1788,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1786,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1780,
+ "src": "1202:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1785,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "1191:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1787,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1191:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1163:51:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1792,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1256:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1260:6:5",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1256:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1790,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1784,
+ "src": "1226:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1241:14:5",
+ "memberName": "isOwnerOrAdmin",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1204,
+ "src": "1226:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address) view external returns (bool)"
+ }
+ },
+ "id": 1794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1226:41:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2063616c6c2074686973206d6574686f64",
+ "id": 1795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1269:50:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ },
+ "value": "Only collection admin/owner can call this method"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ }
+ ],
+ "id": 1789,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1218:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1796,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1218:102:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1797,
+ "nodeType": "ExpressionStatement",
+ "src": "1218:102:5"
+ },
+ {
+ "id": 1798,
+ "nodeType": "PlaceholderStatement",
+ "src": "2043:1:5"
+ }
+ ]
+ },
+ "id": 1800,
+ "name": "checkRestrictions",
+ "nameLocation": "1120:17:5",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 1781,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1780,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "1146:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1800,
+ "src": "1138:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1779,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1138:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1137:21:5"
+ },
+ "src": "1111:937:5",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 1801,
+ "nodeType": "StructuredDocumentation",
+ "src": "2051:69:5",
+ "text": "@dev This emits when a mint to a substrate address has been made."
+ },
+ "eventSelector": "fb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb7535",
+ "id": 1811,
+ "name": "MintToSub",
+ "nameLocation": "2128:9:5",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1810,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1803,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toEth",
+ "nameLocation": "2146:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2138:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1802,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2138:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1805,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toSub",
+ "nameLocation": "2162:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2154:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1804,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2154:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1807,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "2178:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2170:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2170:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1809,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_tokenId",
+ "nameLocation": "2199:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2191:16:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1808,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2191:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2137:71:5"
+ },
+ "src": "2122:87:5"
+ },
+ {
+ "body": {
+ "id": 1941,
+ "nodeType": "Block",
+ "src": "2326:1359:5",
+ "statements": [
+ {
+ "assignments": [
+ 1823
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1823,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "2487:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2476:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1822,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1821,
+ "name": "Collection",
+ "nameLocations": [
+ "2476:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "2476:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "2476:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1827,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1825,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2515:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1824,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "2504:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1826,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2504:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2476:51:5"
+ },
+ {
+ "assignments": [
+ 1829
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1829,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "2539:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2531:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1828,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2531:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1838,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1833,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "2572:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2587:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "2572:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2572:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2566:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1831,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2566:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2566:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1830,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "2556:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2556:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2531:80:5"
+ },
+ {
+ "assignments": [
+ 1840
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1840,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2623:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2615:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1839,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2615:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1841,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2615:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1842,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1829,
+ "src": "2639:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1843,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "2657:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2639:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1883,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1829,
+ "src": "2970:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1884,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "2988:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2970:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1928,
+ "nodeType": "Block",
+ "src": "3325:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 1925,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3337:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 1924,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "3330:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 1926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3330:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1927,
+ "nodeType": "ExpressionStatement",
+ "src": "3330:59:5"
+ }
+ ]
+ },
+ "id": 1929,
+ "nodeType": "IfStatement",
+ "src": "2966:428:5",
+ "trueBody": {
+ "id": 1923,
+ "nodeType": "Block",
+ "src": "3017:302:5",
+ "statements": [
+ {
+ "assignments": [
+ 1888
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1888,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "3032:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1923,
+ "src": "3022:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 1887,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1886,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "3022:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "3022:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "3022:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1892,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1890,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "3058:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1889,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "3048:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 1891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3048:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3022:48:5"
+ },
+ {
+ "expression": {
+ "id": 1901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1893,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3120:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1898,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3157:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3149:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1896,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3149:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3149:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1894,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1888,
+ "src": "3130:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3144:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "3130:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3130:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3120:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1902,
+ "nodeType": "ExpressionStatement",
+ "src": "3120:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1909,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3232:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3224:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1907,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3224:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3224:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3239:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1906,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "3206:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3206:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3273:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3265:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1914,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3265:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3265:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1918,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "3277:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1913,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "3247:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3247:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 1920,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3302:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1903,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1888,
+ "src": "3169:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3183:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "3169:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 1921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3169:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1922,
+ "nodeType": "ExpressionStatement",
+ "src": "3169:145:5"
+ }
+ ]
+ }
+ },
+ "id": 1930,
+ "nodeType": "IfStatement",
+ "src": "2635:759:5",
+ "trueBody": {
+ "id": 1882,
+ "nodeType": "Block",
+ "src": "2685:275:5",
+ "statements": [
+ {
+ "assignments": [
+ 1847
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1847,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "2707:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1882,
+ "src": "2690:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1846,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1845,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "2690:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1572,
+ "src": "2690:16:5"
+ },
+ "referencedDeclaration": 1572,
+ "src": "2690:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1851,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1849,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2740:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1848,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "2723:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1572_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2723:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2690:62:5"
+ },
+ {
+ "expression": {
+ "id": 1860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1852,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "2761:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1857,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "2798:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2790:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1855,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2790:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2790:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1853,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1847,
+ "src": "2771:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2785:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1314,
+ "src": "2771:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2771:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2761:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1861,
+ "nodeType": "ExpressionStatement",
+ "src": "2761:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1868,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "2873:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2865:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1866,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2865:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1869,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2865:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2880:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1865,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "2847:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2847:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2914:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1874,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2906:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1873,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2906:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1876,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2906:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1877,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "2918:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1872,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "2888:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2888:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 1879,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "2943:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1862,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1847,
+ "src": "2810:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1864,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2824:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1368,
+ "src": "2810:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 1880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2810:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1881,
+ "nodeType": "ExpressionStatement",
+ "src": "2810:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3636:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3628:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1932,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3628:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3628:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1936,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "3640:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1937,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "3660:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1938,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3673:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1931,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "3618:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 1939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3618:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1940,
+ "nodeType": "EmitStatement",
+ "src": "3613:68:5"
+ }
+ ]
+ },
+ "functionSelector": "7a8d9786",
+ "id": 1942,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1818,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2313:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1819,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1817,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "2295:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "2295:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "2295:30:5"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "nameLocation": "2221:15:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1816,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1813,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "2245:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1942,
+ "src": "2237:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1812,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2237:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1815,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "2266:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1942,
+ "src": "2258:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1814,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2258:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2236:49:5"
+ },
+ "returnParameters": {
+ "id": 1820,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2326:0:5"
+ },
+ "scope": 2269,
+ "src": "2212:1473:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2150,
+ "nodeType": "Block",
+ "src": "3855:1590:5",
+ "statements": [
+ {
+ "assignments": [
+ 1957
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1957,
+ "mutability": "mutable",
+ "name": "propertiesLength",
+ "nameLocation": "4016:16:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4008:24:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1956,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4008:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1960,
+ "initialValue": {
+ "expression": {
+ "id": 1958,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4035:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 1959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4046:6:5",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4035:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4008:44:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1962,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4064:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4083:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4064:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "id": 1965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4086:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ },
+ "value": "Properies is empty"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ }
+ ],
+ "id": 1961,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "4056:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4056:51:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1967,
+ "nodeType": "ExpressionStatement",
+ "src": "4056:51:5"
+ },
+ {
+ "assignments": [
+ 1970
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1970,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "4123:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4112:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1969,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1968,
+ "name": "Collection",
+ "nameLocations": [
+ "4112:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "4112:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "4112:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1974,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1972,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4151:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1971,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "4140:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4140:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4112:51:5"
+ },
+ {
+ "assignments": [
+ 1976
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1976,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "4175:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4167:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1975,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4167:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1985,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1980,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1970,
+ "src": "4208:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4223:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "4208:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4208:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4202:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1978,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4202:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4202:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1977,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "4192:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1984,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4192:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4167:80:5"
+ },
+ {
+ "assignments": [
+ 1987
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1987,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4259:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4251:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1986,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4251:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1988,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4251:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1989,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1976,
+ "src": "4275:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1990,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "4293:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4275:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2061,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1976,
+ "src": "4770:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2062,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "4788:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4770:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2137,
+ "nodeType": "Block",
+ "src": "5248:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 2134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5260:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 2133,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "5253:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 2135,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5253:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2136,
+ "nodeType": "ExpressionStatement",
+ "src": "5253:59:5"
+ }
+ ]
+ },
+ "id": 2138,
+ "nodeType": "IfStatement",
+ "src": "4766:551:5",
+ "trueBody": {
+ "id": 2132,
+ "nodeType": "Block",
+ "src": "4817:425:5",
+ "statements": [
+ {
+ "assignments": [
+ 2066
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2066,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "4832:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2132,
+ "src": "4822:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 2065,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2064,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "4822:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "4822:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "4822:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2070,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2068,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4858:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2067,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "4848:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 2069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4848:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4822:48:5"
+ },
+ {
+ "expression": {
+ "id": 2075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2071,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4875:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2072,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "4885:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4899:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 757,
+ "src": "4885:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 2074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4885:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4875:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2076,
+ "nodeType": "ExpressionStatement",
+ "src": "4875:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2082,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4944:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4936:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2080,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4936:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4936:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2077,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "4917:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4931:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "4917:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4917:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2085,
+ "nodeType": "ExpressionStatement",
+ "src": "4917:33:5"
+ },
+ {
+ "body": {
+ "id": 2110,
+ "nodeType": "Block",
+ "src": "5002:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2099,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5034:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2100,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "5043:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2102,
+ "indexExpression": {
+ "id": 2101,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "5054:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5043:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5057:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1759,
+ "src": "5043:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2104,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "5062:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2106,
+ "indexExpression": {
+ "id": 2105,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "5073:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5062:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5076:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1761,
+ "src": "5062:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 2096,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "5008:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5022:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 328,
+ "src": "5008:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 2108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5008:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2109,
+ "nodeType": "ExpressionStatement",
+ "src": "5008:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2090,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "4975:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2091,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4979:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4975:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2111,
+ "initializationExpression": {
+ "assignments": [
+ 2087
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2087,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4968:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2111,
+ "src": "4960:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2086,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4960:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2089,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4972:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4960:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 2094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4997:3:5",
+ "subExpression": {
+ "id": 2093,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "4999:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2095,
+ "nodeType": "ExpressionStatement",
+ "src": "4997:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "4955:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2118,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "5155:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2117,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5147:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2116,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5147:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2119,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5147:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5162:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2115,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "5129:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5129:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5196:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5188:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2123,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5188:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2126,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5188:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2127,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "5200:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2122,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "5170:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2128,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5170:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2129,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5225:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2112,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "5092:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5106:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "5092:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5092:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2131,
+ "nodeType": "ExpressionStatement",
+ "src": "5092:145:5"
+ }
+ ]
+ }
+ },
+ "id": 2139,
+ "nodeType": "IfStatement",
+ "src": "4271:1046:5",
+ "trueBody": {
+ "id": 2060,
+ "nodeType": "Block",
+ "src": "4321:439:5",
+ "statements": [
+ {
+ "assignments": [
+ 1994
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1994,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "4343:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2060,
+ "src": "4326:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1993,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1992,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "4326:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1572,
+ "src": "4326:16:5"
+ },
+ "referencedDeclaration": 1572,
+ "src": "4326:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1998,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1996,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4376:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1995,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "4359:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1572_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4326:62:5"
+ },
+ {
+ "expression": {
+ "id": 2003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1999,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4393:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2000,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4403:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4417:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1391,
+ "src": "4403:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 2002,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4403:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4393:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2004,
+ "nodeType": "ExpressionStatement",
+ "src": "4393:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2010,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4462:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2009,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4454:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2008,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4454:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4454:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2005,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4435:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2007,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4449:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1314,
+ "src": "4435:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4435:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2013,
+ "nodeType": "ExpressionStatement",
+ "src": "4435:33:5"
+ },
+ {
+ "body": {
+ "id": 2038,
+ "nodeType": "Block",
+ "src": "4520:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2027,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4552:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2028,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4561:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2030,
+ "indexExpression": {
+ "id": 2029,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4572:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4561:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2031,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4575:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1759,
+ "src": "4561:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2032,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4580:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2034,
+ "indexExpression": {
+ "id": 2033,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4591:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4580:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2035,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4594:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1761,
+ "src": "4580:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 2024,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4526:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2026,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4540:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 971,
+ "src": "4526:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 2036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4526:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2037,
+ "nodeType": "ExpressionStatement",
+ "src": "4526:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2018,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4493:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2019,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4497:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4493:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2039,
+ "initializationExpression": {
+ "assignments": [
+ 2015
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2015,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4486:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2039,
+ "src": "4478:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2014,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4478:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2017,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4490:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4478:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 2022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4515:3:5",
+ "subExpression": {
+ "id": 2021,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4517:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2023,
+ "nodeType": "ExpressionStatement",
+ "src": "4515:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "4473:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2046,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4673:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4665:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2044,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4665:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2047,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4665:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4680:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2043,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "4647:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4647:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4714:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4706:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2051,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4706:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4706:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2055,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "4718:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2050,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "4688:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4688:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2057,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4743:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2040,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4610:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4624:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1368,
+ "src": "4610:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2058,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4610:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2059,
+ "nodeType": "ExpressionStatement",
+ "src": "4610:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2143,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5396:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5388:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2141,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5388:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5388:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2145,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "5400:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2146,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "5420:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2147,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5433:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2140,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "5378:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 2148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5378:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2149,
+ "nodeType": "EmitStatement",
+ "src": "5373:68:5"
+ }
+ ]
+ },
+ "functionSelector": "440dff9d",
+ "id": 2151,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1953,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "3842:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1954,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1952,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "3824:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "3824:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3824:30:5"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "nameLocation": "3697:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1951,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1944,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "3736:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3728:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1943,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3728:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1946,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "3759:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3751:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1945,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3751:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1950,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "3801:10:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3781:30:5",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1948,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1947,
+ "name": "Property",
+ "nameLocations": [
+ "3781:8:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1762,
+ "src": "3781:8:5"
+ },
+ "referencedDeclaration": 1762,
+ "src": "3781:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_storage_ptr",
+ "typeString": "struct Property"
+ }
+ },
+ "id": 1949,
+ "nodeType": "ArrayTypeName",
+ "src": "3781:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_storage_$dyn_storage_ptr",
+ "typeString": "struct Property[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3724:90:5"
+ },
+ "returnParameters": {
+ "id": 1955,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3855:0:5"
+ },
+ "scope": 2269,
+ "src": "3688:1757:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2267,
+ "nodeType": "Block",
+ "src": "5619:885:5",
+ "statements": [
+ {
+ "assignments": [
+ 2166
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2166,
+ "mutability": "mutable",
+ "name": "propertiesLength",
+ "nameLocation": "5631:16:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5623:24:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2165,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5623:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2169,
+ "initialValue": {
+ "expression": {
+ "id": 2167,
+ "name": "_properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2159,
+ "src": "5650:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ },
+ "id": 2168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5662:6:5",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5650:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5623:45:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2171,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "5680:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5699:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5680:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "id": 2174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5702:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ },
+ "value": "Properies is empty"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ }
+ ],
+ "id": 2170,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "5672:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5672:51:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2176,
+ "nodeType": "ExpressionStatement",
+ "src": "5672:51:5"
+ },
+ {
+ "assignments": [
+ 2179
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2179,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "5739:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5728:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 2178,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2177,
+ "name": "Collection",
+ "nameLocations": [
+ "5728:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "5728:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "5728:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2183,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2181,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "5767:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2180,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "5756:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 2182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5756:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5728:51:5"
+ },
+ {
+ "assignments": [
+ 2185
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2185,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "5791:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5783:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 2184,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5783:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2194,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2189,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2179,
+ "src": "5824:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 2190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5839:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "5824:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 2191,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5824:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 2188,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5818:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 2187,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "5818:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2192,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5818:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2186,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "5808:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 2193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5808:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5783:80:5"
+ },
+ {
+ "assignments": [
+ 2196
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2196,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "5875:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5867:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2195,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5867:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2197,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5867:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2198,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2185,
+ "src": "5891:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2199,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "5909:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "5891:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2202,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2185,
+ "src": "5949:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2203,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "5967:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "5949:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2254,
+ "nodeType": "Block",
+ "src": "6359:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 2251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6371:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 2250,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "6364:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 2252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6364:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2253,
+ "nodeType": "ExpressionStatement",
+ "src": "6364:59:5"
+ }
+ ]
+ },
+ "id": 2255,
+ "nodeType": "IfStatement",
+ "src": "5945:483:5",
+ "trueBody": {
+ "id": 2249,
+ "nodeType": "Block",
+ "src": "5996:357:5",
+ "statements": [
+ {
+ "assignments": [
+ 2207
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2207,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "6011:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2249,
+ "src": "6001:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 2206,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2205,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "6001:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "6001:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "6001:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2211,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2209,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "6037:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2208,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "6027:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 2210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6027:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6001:48:5"
+ },
+ {
+ "expression": {
+ "id": 2220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2212,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6099:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2217,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "6136:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6128:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2215,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6128:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2218,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6128:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2213,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6109:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6123:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "6109:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6109:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6099:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2221,
+ "nodeType": "ExpressionStatement",
+ "src": "6099:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2225,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6176:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2226,
+ "name": "_properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2159,
+ "src": "6185:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2222,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6148:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6162:13:5",
+ "memberName": "setProperties",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 338,
+ "src": "6148:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,struct Tuple21 memory[] memory) external"
+ }
+ },
+ "id": 2227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6148:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2228,
+ "nodeType": "ExpressionStatement",
+ "src": "6148:49:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2235,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "6266:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6258:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2233,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6258:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6258:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6273:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2232,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "6240:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6240:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6307:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6299:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2240,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6299:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6299:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2244,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2155,
+ "src": "6311:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2239,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "6281:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6281:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2246,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6336:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2229,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6203:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6217:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "6203:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6203:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2248,
+ "nodeType": "ExpressionStatement",
+ "src": "6203:145:5"
+ }
+ ]
+ }
+ },
+ "id": 2256,
+ "nodeType": "IfStatement",
+ "src": "5887:541:5",
+ "trueBody": {
+ "id": 2201,
+ "nodeType": "Block",
+ "src": "5937:2:5",
+ "statements": []
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6455:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6447:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2258,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6447:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6447:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2262,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2155,
+ "src": "6459:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2263,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "6479:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2264,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6492:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2257,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "6437:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 2265,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6437:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2266,
+ "nodeType": "EmitStatement",
+ "src": "6432:68:5"
+ }
+ ]
+ },
+ "functionSelector": "3a0dbb1a",
+ "id": 2268,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 2162,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "5606:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2163,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 2161,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "5588:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "5588:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "5588:30:5"
+ }
+ ],
+ "name": "mintToSubstrateBulkProperty",
+ "nameLocation": "5457:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2160,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2153,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "5496:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5488:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2152,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5488:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2155,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "5519:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5511:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2154,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5511:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2159,
+ "mutability": "mutable",
+ "name": "_properties",
+ "nameLocation": "5564:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5541:34:5",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2157,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2156,
+ "name": "NftProperty",
+ "nameLocations": [
+ "5541:11:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 620,
+ "src": "5541:11:5"
+ },
+ "referencedDeclaration": 620,
+ "src": "5541:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple21_$620_storage_ptr",
+ "typeString": "struct Tuple21"
+ }
+ },
+ "id": 2158,
+ "nodeType": "ArrayTypeName",
+ "src": "5541:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple21[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5484:94:5"
+ },
+ "returnParameters": {
+ "id": 2164,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5619:0:5"
+ },
+ "scope": 2269,
+ "src": "5448:1056:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2270,
+ "src": "673:5833:5",
+ "usedErrors": []
+ }
+ ],
+ "src": "44:6463:5"
+ },
+ "functionHashes": {
+ "mintToSubstrate(address,uint256)": "7a8d9786",
+ "mintToSubstrateBulkProperty(address,uint256,(string,bytes)[])": "3a0dbb1a",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "440dff9d"
+ },
+ "gasEstimates": {
+ "creation": {
+ "codeDepositCost": "912800",
+ "executionCost": "948",
+ "totalCost": "913748"
+ },
+ "external": {
+ "mintToSubstrate(address,uint256)": "infinite",
+ "mintToSubstrateBulkProperty(address,uint256,(string,bytes)[])": "infinite",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "infinite"
+ }
+ }
+}
\ No newline at end of file
bin/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper-solc-output.jsondiffbeforeafterboth--- /dev/null
+++ b/bin/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper-solc-output.json
@@ -0,0 +1,47295 @@
+{
+ "contracts": {
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol": {
+ "CollectionHelpers": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "collectionId",
+ "type": "address"
+ }
+ ],
+ "name": "CollectionCreated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "collectionId",
+ "type": "address"
+ }
+ ],
+ "name": "CollectionDestroyed",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "collectionCreationFee",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "uint8",
+ "name": "decimals",
+ "type": "uint8"
+ },
+ {
+ "internalType": "string",
+ "name": "description",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenPrefix",
+ "type": "string"
+ }
+ ],
+ "name": "createFTCollection",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "description",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenPrefix",
+ "type": "string"
+ }
+ ],
+ "name": "createNFTCollection",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "description",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenPrefix",
+ "type": "string"
+ }
+ ],
+ "name": "createRFTCollection",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "collectionAddress",
+ "type": "address"
+ }
+ ],
+ "name": "destroyCollection",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "collectionAddress",
+ "type": "address"
+ }
+ ],
+ "name": "isCollectionExist",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "collection",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "baseUri",
+ "type": "string"
+ }
+ ],
+ "name": "makeCollectionERC721MetadataCompatible",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x7dea03b1",
+ "kind": "dev",
+ "methods": {
+ "collectionCreationFee()": {
+ "details": "EVM selector for this function is: 0xd23a7ab1, or in textual repr: collectionCreationFee()"
+ },
+ "createFTCollection(string,uint8,string,string)": {
+ "details": "EVM selector for this function is: 0x7335b79f, or in textual repr: createFTCollection(string,uint8,string,string)"
+ },
+ "createNFTCollection(string,string,string)": {
+ "details": "EVM selector for this function is: 0x844af658, or in textual repr: createNFTCollection(string,string,string)",
+ "params": {
+ "description": "Informative description of the collection",
+ "name": "Name of the collection",
+ "tokenPrefix": "Token prefix to represent the collection tokens in UI and user applications"
+ },
+ "returns": {
+ "_0": "address Address of the newly created collection"
+ }
+ },
+ "createRFTCollection(string,string,string)": {
+ "details": "EVM selector for this function is: 0xab173450, or in textual repr: createRFTCollection(string,string,string)"
+ },
+ "destroyCollection(address)": {
+ "details": "EVM selector for this function is: 0x564e321f, or in textual repr: destroyCollection(address)"
+ },
+ "isCollectionExist(address)": {
+ "details": "EVM selector for this function is: 0xc3de1494, or in textual repr: isCollectionExist(address)",
+ "params": {
+ "collectionAddress": "Address of the collection in question"
+ },
+ "returns": {
+ "_0": "bool Does the collection exist?"
+ }
+ },
+ "makeCollectionERC721MetadataCompatible(address,string)": {
+ "details": "EVM selector for this function is: 0x85624258, or in textual repr: makeCollectionERC721MetadataCompatible(address,string)"
+ }
+ },
+ "title": "Contract, which allows users to operate with collections",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "collectionCreationFee()": "d23a7ab1",
+ "createFTCollection(string,uint8,string,string)": "7335b79f",
+ "createNFTCollection(string,string,string)": "844af658",
+ "createRFTCollection(string,string,string)": "ab173450",
+ "destroyCollection(address)": "564e321f",
+ "isCollectionExist(address)": "c3de1494",
+ "makeCollectionERC721MetadataCompatible(address,string)": "85624258",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collectionId\",\"type\":\"address\"}],\"name\":\"CollectionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collectionId\",\"type\":\"address\"}],\"name\":\"CollectionDestroyed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"collectionCreationFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenPrefix\",\"type\":\"string\"}],\"name\":\"createFTCollection\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenPrefix\",\"type\":\"string\"}],\"name\":\"createNFTCollection\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenPrefix\",\"type\":\"string\"}],\"name\":\"createRFTCollection\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collectionAddress\",\"type\":\"address\"}],\"name\":\"destroyCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collectionAddress\",\"type\":\"address\"}],\"name\":\"isCollectionExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"}],\"name\":\"makeCollectionERC721MetadataCompatible\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x7dea03b1\",\"kind\":\"dev\",\"methods\":{\"collectionCreationFee()\":{\"details\":\"EVM selector for this function is: 0xd23a7ab1, or in textual repr: collectionCreationFee()\"},\"createFTCollection(string,uint8,string,string)\":{\"details\":\"EVM selector for this function is: 0x7335b79f, or in textual repr: createFTCollection(string,uint8,string,string)\"},\"createNFTCollection(string,string,string)\":{\"details\":\"EVM selector for this function is: 0x844af658, or in textual repr: createNFTCollection(string,string,string)\",\"params\":{\"description\":\"Informative description of the collection\",\"name\":\"Name of the collection\",\"tokenPrefix\":\"Token prefix to represent the collection tokens in UI and user applications\"},\"returns\":{\"_0\":\"address Address of the newly created collection\"}},\"createRFTCollection(string,string,string)\":{\"details\":\"EVM selector for this function is: 0xab173450, or in textual repr: createRFTCollection(string,string,string)\"},\"destroyCollection(address)\":{\"details\":\"EVM selector for this function is: 0x564e321f, or in textual repr: destroyCollection(address)\"},\"isCollectionExist(address)\":{\"details\":\"EVM selector for this function is: 0xc3de1494, or in textual repr: isCollectionExist(address)\",\"params\":{\"collectionAddress\":\"Address of the collection in question\"},\"returns\":{\"_0\":\"bool Does the collection exist?\"}},\"makeCollectionERC721MetadataCompatible(address,string)\":{\"details\":\"EVM selector for this function is: 0x85624258, or in textual repr: makeCollectionERC721MetadataCompatible(address,string)\"}},\"title\":\"Contract, which allows users to operate with collections\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createNFTCollection(string,string,string)\":{\"notice\":\"Create an NFT collection\"},\"isCollectionExist(address)\":{\"notice\":\"Check if a collection exists\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":\"CollectionHelpers\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "createNFTCollection(string,string,string)": {
+ "notice": "Create an NFT collection"
+ },
+ "isCollectionExist(address)": {
+ "notice": "Check if a collection exists"
+ }
+ },
+ "version": 1
+ }
+ },
+ "CollectionHelpersEvents": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "collectionId",
+ "type": "address"
+ }
+ ],
+ "name": "CollectionCreated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "collectionId",
+ "type": "address"
+ }
+ ],
+ "name": "CollectionDestroyed",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collectionId\",\"type\":\"address\"}],\"name\":\"CollectionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collectionId\",\"type\":\"address\"}],\"name\":\"CollectionDestroyed\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":\"CollectionHelpersEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "Dummy": {
+ "abi": [],
+ "devdoc": {
+ "details": "common stubs holder",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"common stubs holder\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":\"Dummy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC165": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ }
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol": {
+ "ContractHelpers": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorshipConfirmed",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "allowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "allowlistEnabled",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "confirmSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "contractOwner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "hasPendingSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "hasSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "removeSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "selfSponsoredEnable",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "setSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeLimit",
+ "type": "uint256"
+ }
+ ],
+ "name": "setSponsoringFeeLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint8",
+ "name": "mode",
+ "type": "uint8"
+ }
+ ],
+ "name": "setSponsoringMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "rateLimit",
+ "type": "uint32"
+ }
+ ],
+ "name": "setSponsoringRateLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsor",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "field_0",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "field_1",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct Tuple0",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsoringEnabled",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsoringFeeLimit",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "sponsoringRateLimit",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "isAllowed",
+ "type": "bool"
+ }
+ ],
+ "name": "toggleAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "enabled",
+ "type": "bool"
+ }
+ ],
+ "name": "toggleAllowlist",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x30afad04",
+ "kind": "dev",
+ "methods": {
+ "allowed(address,address)": {
+ "details": "Contract owner always implicitly includedEVM selector for this function is: 0x5c658165, or in textual repr: allowed(address,address)",
+ "params": {
+ "contractAddress": "Contract to check allowlist of",
+ "user": "User to check"
+ },
+ "returns": {
+ "_0": "bool Is specified users exists in contract allowlist"
+ }
+ },
+ "allowlistEnabled(address)": {
+ "details": "Allowlist always can have users, and it is used for two purposes: in case of allowlist sponsoring mode, users will be sponsored if they exist in allowlist in case of allowlist access enabled, only users from allowlist may call this contractEVM selector for this function is: 0xc772ef6c, or in textual repr: allowlistEnabled(address)",
+ "params": {
+ "contractAddress": "Contract to get allowlist access of"
+ },
+ "returns": {
+ "_0": "bool Is specified contract has allowlist access enabled"
+ }
+ },
+ "confirmSponsorship(address)": {
+ "details": "Caller must be same that set via [`setSponsor`].EVM selector for this function is: 0xabc00001, or in textual repr: confirmSponsorship(address)",
+ "params": {
+ "contractAddress": "Сontract for which need to confirm sponsorship."
+ }
+ },
+ "contractOwner(address)": {
+ "details": "May return zero address in case if contract is deployed using uniquenetwork evm-migration pallet, or using other terms not intended by pallet-evmReturns zero address if contract does not existsEVM selector for this function is: 0x5152b14c, or in textual repr: contractOwner(address)",
+ "params": {
+ "contractAddress": "Contract to get owner of"
+ },
+ "returns": {
+ "_0": "address Owner of contract"
+ }
+ },
+ "hasPendingSponsor(address)": {
+ "details": "EVM selector for this function is: 0x39b9b242, or in textual repr: hasPendingSponsor(address)",
+ "params": {
+ "contractAddress": "The contract for which the presence of a pending sponsor is checked."
+ },
+ "returns": {
+ "_0": "**true** if contract has pending sponsor."
+ }
+ },
+ "hasSponsor(address)": {
+ "details": "EVM selector for this function is: 0x97418603, or in textual repr: hasSponsor(address)",
+ "params": {
+ "contractAddress": "The contract for which the presence of a confirmed sponsor is checked."
+ },
+ "returns": {
+ "_0": "**true** if contract has confirmed sponsor."
+ }
+ },
+ "removeSponsor(address)": {
+ "details": "EVM selector for this function is: 0xef784250, or in textual repr: removeSponsor(address)",
+ "params": {
+ "contractAddress": "Contract for which a sponsorship is being removed."
+ }
+ },
+ "selfSponsoredEnable(address)": {
+ "details": "EVM selector for this function is: 0x89f7d9ae, or in textual repr: selfSponsoredEnable(address)",
+ "params": {
+ "contractAddress": "Contract for which a self sponsoring is being enabled."
+ }
+ },
+ "setSponsor(address,address)": {
+ "details": "EVM selector for this function is: 0xf01fba93, or in textual repr: setSponsor(address,address)",
+ "params": {
+ "contractAddress": "Contract for which a sponsor is being established.",
+ "sponsor": "User address who set as pending sponsor."
+ }
+ },
+ "setSponsoringFeeLimit(address,uint256)": {
+ "details": "Sponsoring fee limit - is maximum fee that could be spent by single transactionOnly contract owner can change this settingEVM selector for this function is: 0x03aed665, or in textual repr: setSponsoringFeeLimit(address,uint256)",
+ "params": {
+ "contractAddress": "Contract to change sponsoring fee limit of",
+ "feeLimit": "Fee limit"
+ }
+ },
+ "setSponsoringMode(address,uint8)": {
+ "details": "EVM selector for this function is: 0xfde8a560, or in textual repr: setSponsoringMode(address,uint8)"
+ },
+ "setSponsoringRateLimit(address,uint32)": {
+ "details": "Sponsoring rate limit - is a minimum amount of blocks that should pass between two sponsored transactionsOnly contract owner can change this settingEVM selector for this function is: 0x77b6c908, or in textual repr: setSponsoringRateLimit(address,uint32)",
+ "params": {
+ "contractAddress": "Contract to change sponsoring rate limit of",
+ "rateLimit": "Target rate limit"
+ }
+ },
+ "sponsor(address)": {
+ "details": "EVM selector for this function is: 0x766c4f37, or in textual repr: sponsor(address)",
+ "params": {
+ "contractAddress": "The contract for which a sponsor is requested."
+ },
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw."
+ }
+ },
+ "sponsoringEnabled(address)": {
+ "details": "EVM selector for this function is: 0x6027dc61, or in textual repr: sponsoringEnabled(address)"
+ },
+ "sponsoringFeeLimit(address)": {
+ "details": "EVM selector for this function is: 0x75b73606, or in textual repr: sponsoringFeeLimit(address)",
+ "params": {
+ "contractAddress": "Contract to get sponsoring fee limit of"
+ },
+ "returns": {
+ "_0": "uint256 Maximum amount of fee that could be spent by single transaction"
+ }
+ },
+ "sponsoringRateLimit(address)": {
+ "details": "EVM selector for this function is: 0xf29694d8, or in textual repr: sponsoringRateLimit(address)",
+ "params": {
+ "contractAddress": "Contract to get sponsoring rate limit of"
+ },
+ "returns": {
+ "_0": "uint32 Amount of blocks between two sponsored transactions"
+ }
+ },
+ "toggleAllowed(address,address,bool)": {
+ "details": "Only contract owner can change this settingEVM selector for this function is: 0x4706cc1c, or in textual repr: toggleAllowed(address,address,bool)",
+ "params": {
+ "contractAddress": "Contract to change allowlist of",
+ "isAllowed": "`true` if user should be allowed to be sponsored or call this contract, `false` otherwise",
+ "user": "Which user presence should be toggled"
+ }
+ },
+ "toggleAllowlist(address,bool)": {
+ "details": "EVM selector for this function is: 0x36de20f5, or in textual repr: toggleAllowlist(address,bool)",
+ "params": {
+ "contractAddress": "Contract to change allowlist access of",
+ "enabled": "Should allowlist access to be enabled?"
+ }
+ }
+ },
+ "title": "Magic contract, which allows users to reconfigure other contracts",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "allowed(address,address)": "5c658165",
+ "allowlistEnabled(address)": "c772ef6c",
+ "confirmSponsorship(address)": "abc00001",
+ "contractOwner(address)": "5152b14c",
+ "hasPendingSponsor(address)": "39b9b242",
+ "hasSponsor(address)": "97418603",
+ "removeSponsor(address)": "ef784250",
+ "selfSponsoredEnable(address)": "89f7d9ae",
+ "setSponsor(address,address)": "f01fba93",
+ "setSponsoringFeeLimit(address,uint256)": "03aed665",
+ "setSponsoringMode(address,uint8)": "fde8a560",
+ "setSponsoringRateLimit(address,uint32)": "77b6c908",
+ "sponsor(address)": "766c4f37",
+ "sponsoringEnabled(address)": "6027dc61",
+ "sponsoringFeeLimit(address)": "75b73606",
+ "sponsoringRateLimit(address)": "f29694d8",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "toggleAllowed(address,address,bool)": "4706cc1c",
+ "toggleAllowlist(address,bool)": "36de20f5"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"ContractSponsorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"ContractSponsorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"ContractSponsorshipConfirmed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"allowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"allowlistEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"confirmSponsorship\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"contractOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"hasPendingSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"hasSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"removeSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"selfSponsoredEnable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"setSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeLimit\",\"type\":\"uint256\"}],\"name\":\"setSponsoringFeeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setSponsoringMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"rateLimit\",\"type\":\"uint32\"}],\"name\":\"setSponsoringRateLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"sponsor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"field_0\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"field_1\",\"type\":\"uint256\"}],\"internalType\":\"struct Tuple0\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"sponsoringEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"sponsoringFeeLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"sponsoringRateLimit\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"toggleAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"toggleAllowlist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x30afad04\",\"kind\":\"dev\",\"methods\":{\"allowed(address,address)\":{\"details\":\"Contract owner always implicitly includedEVM selector for this function is: 0x5c658165, or in textual repr: allowed(address,address)\",\"params\":{\"contractAddress\":\"Contract to check allowlist of\",\"user\":\"User to check\"},\"returns\":{\"_0\":\"bool Is specified users exists in contract allowlist\"}},\"allowlistEnabled(address)\":{\"details\":\"Allowlist always can have users, and it is used for two purposes: in case of allowlist sponsoring mode, users will be sponsored if they exist in allowlist in case of allowlist access enabled, only users from allowlist may call this contractEVM selector for this function is: 0xc772ef6c, or in textual repr: allowlistEnabled(address)\",\"params\":{\"contractAddress\":\"Contract to get allowlist access of\"},\"returns\":{\"_0\":\"bool Is specified contract has allowlist access enabled\"}},\"confirmSponsorship(address)\":{\"details\":\"Caller must be same that set via [`setSponsor`].EVM selector for this function is: 0xabc00001, or in textual repr: confirmSponsorship(address)\",\"params\":{\"contractAddress\":\"\\u0421ontract for which need to confirm sponsorship.\"}},\"contractOwner(address)\":{\"details\":\"May return zero address in case if contract is deployed using uniquenetwork evm-migration pallet, or using other terms not intended by pallet-evmReturns zero address if contract does not existsEVM selector for this function is: 0x5152b14c, or in textual repr: contractOwner(address)\",\"params\":{\"contractAddress\":\"Contract to get owner of\"},\"returns\":{\"_0\":\"address Owner of contract\"}},\"hasPendingSponsor(address)\":{\"details\":\"EVM selector for this function is: 0x39b9b242, or in textual repr: hasPendingSponsor(address)\",\"params\":{\"contractAddress\":\"The contract for which the presence of a pending sponsor is checked.\"},\"returns\":{\"_0\":\"**true** if contract has pending sponsor.\"}},\"hasSponsor(address)\":{\"details\":\"EVM selector for this function is: 0x97418603, or in textual repr: hasSponsor(address)\",\"params\":{\"contractAddress\":\"The contract for which the presence of a confirmed sponsor is checked.\"},\"returns\":{\"_0\":\"**true** if contract has confirmed sponsor.\"}},\"removeSponsor(address)\":{\"details\":\"EVM selector for this function is: 0xef784250, or in textual repr: removeSponsor(address)\",\"params\":{\"contractAddress\":\"Contract for which a sponsorship is being removed.\"}},\"selfSponsoredEnable(address)\":{\"details\":\"EVM selector for this function is: 0x89f7d9ae, or in textual repr: selfSponsoredEnable(address)\",\"params\":{\"contractAddress\":\"Contract for which a self sponsoring is being enabled.\"}},\"setSponsor(address,address)\":{\"details\":\"EVM selector for this function is: 0xf01fba93, or in textual repr: setSponsor(address,address)\",\"params\":{\"contractAddress\":\"Contract for which a sponsor is being established.\",\"sponsor\":\"User address who set as pending sponsor.\"}},\"setSponsoringFeeLimit(address,uint256)\":{\"details\":\"Sponsoring fee limit - is maximum fee that could be spent by single transactionOnly contract owner can change this settingEVM selector for this function is: 0x03aed665, or in textual repr: setSponsoringFeeLimit(address,uint256)\",\"params\":{\"contractAddress\":\"Contract to change sponsoring fee limit of\",\"feeLimit\":\"Fee limit\"}},\"setSponsoringMode(address,uint8)\":{\"details\":\"EVM selector for this function is: 0xfde8a560, or in textual repr: setSponsoringMode(address,uint8)\"},\"setSponsoringRateLimit(address,uint32)\":{\"details\":\"Sponsoring rate limit - is a minimum amount of blocks that should pass between two sponsored transactionsOnly contract owner can change this settingEVM selector for this function is: 0x77b6c908, or in textual repr: setSponsoringRateLimit(address,uint32)\",\"params\":{\"contractAddress\":\"Contract to change sponsoring rate limit of\",\"rateLimit\":\"Target rate limit\"}},\"sponsor(address)\":{\"details\":\"EVM selector for this function is: 0x766c4f37, or in textual repr: sponsor(address)\",\"params\":{\"contractAddress\":\"The contract for which a sponsor is requested.\"},\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \\\"Contract has no sponsor\\\" throw.\"}},\"sponsoringEnabled(address)\":{\"details\":\"EVM selector for this function is: 0x6027dc61, or in textual repr: sponsoringEnabled(address)\"},\"sponsoringFeeLimit(address)\":{\"details\":\"EVM selector for this function is: 0x75b73606, or in textual repr: sponsoringFeeLimit(address)\",\"params\":{\"contractAddress\":\"Contract to get sponsoring fee limit of\"},\"returns\":{\"_0\":\"uint256 Maximum amount of fee that could be spent by single transaction\"}},\"sponsoringRateLimit(address)\":{\"details\":\"EVM selector for this function is: 0xf29694d8, or in textual repr: sponsoringRateLimit(address)\",\"params\":{\"contractAddress\":\"Contract to get sponsoring rate limit of\"},\"returns\":{\"_0\":\"uint32 Amount of blocks between two sponsored transactions\"}},\"toggleAllowed(address,address,bool)\":{\"details\":\"Only contract owner can change this settingEVM selector for this function is: 0x4706cc1c, or in textual repr: toggleAllowed(address,address,bool)\",\"params\":{\"contractAddress\":\"Contract to change allowlist of\",\"isAllowed\":\"`true` if user should be allowed to be sponsored or call this contract, `false` otherwise\",\"user\":\"Which user presence should be toggled\"}},\"toggleAllowlist(address,bool)\":{\"details\":\"EVM selector for this function is: 0x36de20f5, or in textual repr: toggleAllowlist(address,bool)\",\"params\":{\"contractAddress\":\"Contract to change allowlist access of\",\"enabled\":\"Should allowlist access to be enabled?\"}}},\"title\":\"Magic contract, which allows users to reconfigure other contracts\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowed(address,address)\":{\"notice\":\"Is specified user present in contract allow list\"},\"allowlistEnabled(address)\":{\"notice\":\"Is this contract has allowlist access enabled\"},\"confirmSponsorship(address)\":{\"notice\":\"Confirm sponsorship.\"},\"contractOwner(address)\":{\"notice\":\"Get user, which deployed specified contract\"},\"hasPendingSponsor(address)\":{\"notice\":\"Check tat contract has pending sponsor.\"},\"hasSponsor(address)\":{\"notice\":\"Check tat contract has confirmed sponsor.\"},\"removeSponsor(address)\":{\"notice\":\"Remove sponsor.\"},\"selfSponsoredEnable(address)\":{\"notice\":\"Set contract as self sponsored.\"},\"setSponsor(address,address)\":{\"notice\":\"Set sponsor.\"},\"setSponsoringFeeLimit(address,uint256)\":{\"notice\":\"Set contract sponsoring fee limit\"},\"setSponsoringRateLimit(address,uint32)\":{\"notice\":\"Set contract sponsoring rate limit\"},\"sponsor(address)\":{\"notice\":\"Get current sponsor.\"},\"sponsoringFeeLimit(address)\":{\"notice\":\"Get current contract sponsoring fee limit\"},\"sponsoringRateLimit(address)\":{\"notice\":\"Get current contract sponsoring rate limit\"},\"toggleAllowed(address,address,bool)\":{\"notice\":\"Toggle user presence in contract allowlist\"},\"toggleAllowlist(address,bool)\":{\"notice\":\"Toggle contract allowlist access\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":\"ContractHelpers\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "allowed(address,address)": {
+ "notice": "Is specified user present in contract allow list"
+ },
+ "allowlistEnabled(address)": {
+ "notice": "Is this contract has allowlist access enabled"
+ },
+ "confirmSponsorship(address)": {
+ "notice": "Confirm sponsorship."
+ },
+ "contractOwner(address)": {
+ "notice": "Get user, which deployed specified contract"
+ },
+ "hasPendingSponsor(address)": {
+ "notice": "Check tat contract has pending sponsor."
+ },
+ "hasSponsor(address)": {
+ "notice": "Check tat contract has confirmed sponsor."
+ },
+ "removeSponsor(address)": {
+ "notice": "Remove sponsor."
+ },
+ "selfSponsoredEnable(address)": {
+ "notice": "Set contract as self sponsored."
+ },
+ "setSponsor(address,address)": {
+ "notice": "Set sponsor."
+ },
+ "setSponsoringFeeLimit(address,uint256)": {
+ "notice": "Set contract sponsoring fee limit"
+ },
+ "setSponsoringRateLimit(address,uint32)": {
+ "notice": "Set contract sponsoring rate limit"
+ },
+ "sponsor(address)": {
+ "notice": "Get current sponsor."
+ },
+ "sponsoringFeeLimit(address)": {
+ "notice": "Get current contract sponsoring fee limit"
+ },
+ "sponsoringRateLimit(address)": {
+ "notice": "Get current contract sponsoring rate limit"
+ },
+ "toggleAllowed(address,address,bool)": {
+ "notice": "Toggle user presence in contract allowlist"
+ },
+ "toggleAllowlist(address,bool)": {
+ "notice": "Toggle contract allowlist access"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ContractHelpersEvents": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "contractAddress",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "ContractSponsorshipConfirmed",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"ContractSponsorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"ContractSponsorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"ContractSponsorshipConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":\"ContractHelpersEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "Dummy": {
+ "abi": [],
+ "devdoc": {
+ "details": "common stubs holder",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"common stubs holder\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":\"Dummy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC165": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ }
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol": {
+ "Collection": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newAdmin",
+ "type": "tuple"
+ }
+ ],
+ "name": "addCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "addToCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "addToCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "allowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "changeCollectionOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionAdmins",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionOwner",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "collectionProperties",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "collectionProperty",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionSponsor",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "field_0",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "field_1",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct Tuple24",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "confirmCollectionSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "deleteCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hasCollectionPendingSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isOwnerOrAdmin",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "isOwnerOrAdminCross",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "admin",
+ "type": "address"
+ }
+ ],
+ "name": "removeCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "admin",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "removeCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeFromCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "mode",
+ "type": "uint8"
+ }
+ ],
+ "name": "setCollectionAccess",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "uint32",
+ "name": "value",
+ "type": "uint32"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "value",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "mode",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionMintMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "internalType": "address[]",
+ "name": "collections",
+ "type": "address[]"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "setCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "sponsor",
+ "type": "tuple"
+ }
+ ],
+ "name": "setCollectionSponsorCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newOwner",
+ "type": "tuple"
+ }
+ ],
+ "name": "setOwnerCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0xb3152af3",
+ "kind": "dev",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)",
+ "params": {
+ "newAdmin": "Address of the added administrator."
+ }
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))",
+ "params": {
+ "newAdmin": "Cross account administrator address."
+ }
+ },
+ "addToCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a trusted user."
+ }
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "allowed(address)": {
+ "details": "EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)",
+ "params": {
+ "user": "User address to check."
+ }
+ },
+ "changeCollectionOwner(address)": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)",
+ "params": {
+ "newOwner": "new owner account"
+ }
+ },
+ "collectionAdmins()": {
+ "details": "EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()",
+ "returns": {
+ "_0": "Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionOwner()": {
+ "details": "EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys. Empty keys for all propertyes."
+ },
+ "returns": {
+ "_0": "Vector of properties key/value pairs."
+ }
+ },
+ "collectionProperty(string)": {
+ "details": "Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ },
+ "returns": {
+ "_0": "bytes The property corresponding to the key."
+ }
+ },
+ "collectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw."
+ }
+ },
+ "confirmCollectionSponsorship()": {
+ "details": "After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()"
+ },
+ "contractAddress()": {
+ "details": "EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()"
+ },
+ "deleteCollectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys."
+ }
+ },
+ "deleteCollectionProperty(string)": {
+ "details": "EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ }
+ },
+ "hasCollectionPendingSponsor()": {
+ "details": "EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "isOwnerOrAdmin(address)": {
+ "details": "EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)",
+ "params": {
+ "user": "account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))",
+ "params": {
+ "user": "User cross account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "removeCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)",
+ "params": {
+ "admin": "Address of the removed administrator."
+ }
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))",
+ "params": {
+ "admin": "Cross account administrator address."
+ }
+ },
+ "removeCollectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()"
+ },
+ "removeFromCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a removed user."
+ }
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "setCollectionAccess(uint8)": {
+ "details": "EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)",
+ "params": {
+ "mode": "Access mode \t0 for Normal \t1 for AllowList"
+ }
+ },
+ "setCollectionLimit(string,bool)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"ownerCanTransfer\", \t\"ownerCanDestroy\", \t\"transfersEnabled\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionLimit(string,uint32)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"accountTokenOwnershipLimit\", \t\"sponsoredDataSize\", \t\"sponsoredDataRateLimit\", \t\"tokenLimit\", \t\"sponsorTransferTimeout\", \t\"sponsorApproveTimeout\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionMintMode(bool)": {
+ "details": "EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)",
+ "params": {
+ "mode": "Enable if \"true\"."
+ }
+ },
+ "setCollectionNesting(bool)": {
+ "details": "EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)",
+ "params": {
+ "enable": "If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionNesting(bool,address[])": {
+ "details": "EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])",
+ "params": {
+ "collections": "Addresses of collections that will be available for nesting.",
+ "enable": "If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "details": "EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])",
+ "params": {
+ "properties": "Vector of properties key/value pair."
+ }
+ },
+ "setCollectionProperty(string,bytes)": {
+ "details": "EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "value": "Propery value."
+ }
+ },
+ "setCollectionSponsor(address)": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)",
+ "params": {
+ "sponsor": "Address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))",
+ "params": {
+ "sponsor": "Cross account address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setOwnerCross((address,uint256))": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))",
+ "params": {
+ "newOwner": "new owner cross account"
+ }
+ },
+ "uniqueCollectionType()": {
+ "details": "EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()",
+ "returns": {
+ "_0": "`Fungible` or `NFT` or `ReFungible`"
+ }
+ }
+ },
+ "title": "A contract that allows you to work with collections.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "addCollectionAdmin(address)": "92e462c7",
+ "addCollectionAdminCross((address,uint256))": "859aa7d6",
+ "addToCollectionAllowList(address)": "67844fe6",
+ "addToCollectionAllowListCross((address,uint256))": "a0184a3a",
+ "allowed(address)": "d63a8e11",
+ "changeCollectionOwner(address)": "4f53e226",
+ "collectionAdmins()": "5813216b",
+ "collectionOwner()": "df727d3b",
+ "collectionProperties(string[])": "285fb8e6",
+ "collectionProperty(string)": "cf24fd6d",
+ "collectionSponsor()": "6ec0a9f1",
+ "confirmCollectionSponsorship()": "3c50e97a",
+ "contractAddress()": "f6b4dfb4",
+ "deleteCollectionProperties(string[])": "ee206ee3",
+ "deleteCollectionProperty(string)": "7b7debce",
+ "hasCollectionPendingSponsor()": "058ac185",
+ "isOwnerOrAdmin(address)": "9811b0c7",
+ "isOwnerOrAdminCross((address,uint256))": "3e75a905",
+ "removeCollectionAdmin(address)": "fafd7b42",
+ "removeCollectionAdminCross((address,uint256))": "6c0cd173",
+ "removeCollectionSponsor()": "6e0326a3",
+ "removeFromCollectionAllowList(address)": "85c51acb",
+ "removeFromCollectionAllowListCross((address,uint256))": "09ba452a",
+ "setCollectionAccess(uint8)": "41835d4c",
+ "setCollectionLimit(string,bool)": "993b7fba",
+ "setCollectionLimit(string,uint32)": "6a3841db",
+ "setCollectionMintMode(bool)": "00018e84",
+ "setCollectionNesting(bool)": "112d4586",
+ "setCollectionNesting(bool,address[])": "64872396",
+ "setCollectionProperties((string,bytes)[])": "50b26b2a",
+ "setCollectionProperty(string,bytes)": "2f073f66",
+ "setCollectionSponsor(address)": "7623402e",
+ "setCollectionSponsorCross((address,uint256))": "84a1d5a8",
+ "setOwnerCross((address,uint256))": "e5c9913f",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "uniqueCollectionType()": "d34b55b8"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newAdmin\",\"type\":\"tuple\"}],\"name\":\"addCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addToCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"addToCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"allowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeCollectionOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionAdmins\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"collectionProperties\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"collectionProperty\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionSponsor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"field_0\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"field_1\",\"type\":\"uint256\"}],\"internalType\":\"struct Tuple24\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmCollectionSponsorship\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"deleteCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasCollectionPendingSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwnerOrAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"isOwnerOrAdminCross\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"admin\",\"type\":\"tuple\"}],\"name\":\"removeCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeFromCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"removeFromCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setCollectionAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"mode\",\"type\":\"bool\"}],\"name\":\"setCollectionMintMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"collections\",\"type\":\"address[]\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"setCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"sponsor\",\"type\":\"tuple\"}],\"name\":\"setCollectionSponsorCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newOwner\",\"type\":\"tuple\"}],\"name\":\"setOwnerCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniqueCollectionType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0xb3152af3\",\"kind\":\"dev\",\"methods\":{\"addCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)\",\"params\":{\"newAdmin\":\"Address of the added administrator.\"}},\"addCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))\",\"params\":{\"newAdmin\":\"Cross account administrator address.\"}},\"addToCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a trusted user.\"}},\"addToCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"allowed(address)\":{\"details\":\"EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)\",\"params\":{\"user\":\"User address to check.\"}},\"changeCollectionOwner(address)\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)\",\"params\":{\"newOwner\":\"new owner account\"}},\"collectionAdmins()\":{\"details\":\"EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()\",\"returns\":{\"_0\":\"Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionOwner()\":{\"details\":\"EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys. Empty keys for all propertyes.\"},\"returns\":{\"_0\":\"Vector of properties key/value pairs.\"}},\"collectionProperty(string)\":{\"details\":\"Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)\",\"params\":{\"key\":\"Property key.\"},\"returns\":{\"_0\":\"bytes The property corresponding to the key.\"}},\"collectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \\\"Contract has no sponsor\\\" throw.\"}},\"confirmCollectionSponsorship()\":{\"details\":\"After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()\"},\"contractAddress()\":{\"details\":\"EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()\"},\"deleteCollectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys.\"}},\"deleteCollectionProperty(string)\":{\"details\":\"EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)\",\"params\":{\"key\":\"Property key.\"}},\"hasCollectionPendingSponsor()\":{\"details\":\"EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()\"},\"isOwnerOrAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)\",\"params\":{\"user\":\"account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"isOwnerOrAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))\",\"params\":{\"user\":\"User cross account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"removeCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)\",\"params\":{\"admin\":\"Address of the removed administrator.\"}},\"removeCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))\",\"params\":{\"admin\":\"Cross account administrator address.\"}},\"removeCollectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()\"},\"removeFromCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a removed user.\"}},\"removeFromCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"setCollectionAccess(uint8)\":{\"details\":\"EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)\",\"params\":{\"mode\":\"Access mode \\t0 for Normal \\t1 for AllowList\"}},\"setCollectionLimit(string,bool)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"ownerCanTransfer\\\", \\t\\\"ownerCanDestroy\\\", \\t\\\"transfersEnabled\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionLimit(string,uint32)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"accountTokenOwnershipLimit\\\", \\t\\\"sponsoredDataSize\\\", \\t\\\"sponsoredDataRateLimit\\\", \\t\\\"tokenLimit\\\", \\t\\\"sponsorTransferTimeout\\\", \\t\\\"sponsorApproveTimeout\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionMintMode(bool)\":{\"details\":\"EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)\",\"params\":{\"mode\":\"Enable if \\\"true\\\".\"}},\"setCollectionNesting(bool)\":{\"details\":\"EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)\",\"params\":{\"enable\":\"If \\\"true\\\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\"}},\"setCollectionNesting(bool,address[])\":{\"details\":\"EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])\",\"params\":{\"collections\":\"Addresses of collections that will be available for nesting.\",\"enable\":\"If \\\"true\\\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\"}},\"setCollectionProperties((string,bytes)[])\":{\"details\":\"EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])\",\"params\":{\"properties\":\"Vector of properties key/value pair.\"}},\"setCollectionProperty(string,bytes)\":{\"details\":\"EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)\",\"params\":{\"key\":\"Property key.\",\"value\":\"Propery value.\"}},\"setCollectionSponsor(address)\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)\",\"params\":{\"sponsor\":\"Address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setCollectionSponsorCross((address,uint256))\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))\",\"params\":{\"sponsor\":\"Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setOwnerCross((address,uint256))\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))\",\"params\":{\"newOwner\":\"new owner cross account\"}},\"uniqueCollectionType()\":{\"details\":\"EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()\",\"returns\":{\"_0\":\"`Fungible` or `NFT` or `ReFungible`\"}}},\"title\":\"A contract that allows you to work with collections.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCollectionAdmin(address)\":{\"notice\":\"Add collection admin.\"},\"addCollectionAdminCross((address,uint256))\":{\"notice\":\"Add collection admin.\"},\"addToCollectionAllowList(address)\":{\"notice\":\"Add the user to the allowed list.\"},\"addToCollectionAllowListCross((address,uint256))\":{\"notice\":\"Add user to allowed list.\"},\"allowed(address)\":{\"notice\":\"Checks that user allowed to operate with collection.\"},\"changeCollectionOwner(address)\":{\"notice\":\"Changes collection owner to another account\"},\"collectionAdmins()\":{\"notice\":\"Get collection administrators\"},\"collectionOwner()\":{\"notice\":\"Get collection owner.\"},\"collectionProperties(string[])\":{\"notice\":\"Get collection properties.\"},\"collectionProperty(string)\":{\"notice\":\"Get collection property.\"},\"collectionSponsor()\":{\"notice\":\"Get current sponsor.\"},\"confirmCollectionSponsorship()\":{\"notice\":\"Collection sponsorship confirmation.\"},\"contractAddress()\":{\"notice\":\"Get contract address.\"},\"deleteCollectionProperties(string[])\":{\"notice\":\"Delete collection properties.\"},\"deleteCollectionProperty(string)\":{\"notice\":\"Delete collection property.\"},\"hasCollectionPendingSponsor()\":{\"notice\":\"Whether there is a pending sponsor.\"},\"isOwnerOrAdmin(address)\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"isOwnerOrAdminCross((address,uint256))\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"removeCollectionAdmin(address)\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionAdminCross((address,uint256))\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionSponsor()\":{\"notice\":\"Remove collection sponsor.\"},\"removeFromCollectionAllowList(address)\":{\"notice\":\"Remove the user from the allowed list.\"},\"removeFromCollectionAllowListCross((address,uint256))\":{\"notice\":\"Remove user from allowed list.\"},\"setCollectionAccess(uint8)\":{\"notice\":\"Set the collection access method.\"},\"setCollectionLimit(string,bool)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionLimit(string,uint32)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionMintMode(bool)\":{\"notice\":\"Switch permission for minting.\"},\"setCollectionNesting(bool)\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionNesting(bool,address[])\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionProperties((string,bytes)[])\":{\"notice\":\"Set collection properties.\"},\"setCollectionProperty(string,bytes)\":{\"notice\":\"Set collection property.\"},\"setCollectionSponsor(address)\":{\"notice\":\"Set the sponsor of the collection.\"},\"setCollectionSponsorCross((address,uint256))\":{\"notice\":\"Set the sponsor of the collection.\"},\"setOwnerCross((address,uint256))\":{\"notice\":\"Changes collection owner to another account\"},\"uniqueCollectionType()\":{\"notice\":\"Returns collection type\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"Collection\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "notice": "Add collection admin."
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "notice": "Add collection admin."
+ },
+ "addToCollectionAllowList(address)": {
+ "notice": "Add the user to the allowed list."
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "notice": "Add user to allowed list."
+ },
+ "allowed(address)": {
+ "notice": "Checks that user allowed to operate with collection."
+ },
+ "changeCollectionOwner(address)": {
+ "notice": "Changes collection owner to another account"
+ },
+ "collectionAdmins()": {
+ "notice": "Get collection administrators"
+ },
+ "collectionOwner()": {
+ "notice": "Get collection owner."
+ },
+ "collectionProperties(string[])": {
+ "notice": "Get collection properties."
+ },
+ "collectionProperty(string)": {
+ "notice": "Get collection property."
+ },
+ "collectionSponsor()": {
+ "notice": "Get current sponsor."
+ },
+ "confirmCollectionSponsorship()": {
+ "notice": "Collection sponsorship confirmation."
+ },
+ "contractAddress()": {
+ "notice": "Get contract address."
+ },
+ "deleteCollectionProperties(string[])": {
+ "notice": "Delete collection properties."
+ },
+ "deleteCollectionProperty(string)": {
+ "notice": "Delete collection property."
+ },
+ "hasCollectionPendingSponsor()": {
+ "notice": "Whether there is a pending sponsor."
+ },
+ "isOwnerOrAdmin(address)": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "removeCollectionAdmin(address)": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionSponsor()": {
+ "notice": "Remove collection sponsor."
+ },
+ "removeFromCollectionAllowList(address)": {
+ "notice": "Remove the user from the allowed list."
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "notice": "Remove user from allowed list."
+ },
+ "setCollectionAccess(uint8)": {
+ "notice": "Set the collection access method."
+ },
+ "setCollectionLimit(string,bool)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionLimit(string,uint32)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionMintMode(bool)": {
+ "notice": "Switch permission for minting."
+ },
+ "setCollectionNesting(bool)": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionNesting(bool,address[])": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "notice": "Set collection properties."
+ },
+ "setCollectionProperty(string,bytes)": {
+ "notice": "Set collection property."
+ },
+ "setCollectionSponsor(address)": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setOwnerCross((address,uint256))": {
+ "notice": "Changes collection owner to another account"
+ },
+ "uniqueCollectionType()": {
+ "notice": "Returns collection type"
+ }
+ },
+ "version": 1
+ }
+ },
+ "Dummy": {
+ "abi": [],
+ "devdoc": {
+ "details": "common stubs holder",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"common stubs holder\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"Dummy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC165": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC721": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.mdthe ERC-165 identifier for this interface is 0x80ac58cd",
+ "kind": "dev",
+ "methods": {
+ "approve(address,uint256)": {
+ "details": "The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)",
+ "params": {
+ "approved": "The new approved NFT controller",
+ "tokenId": "The NFT to approve"
+ }
+ },
+ "balanceOf(address)": {
+ "details": "NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "An address for whom to query the balance"
+ },
+ "returns": {
+ "_0": "The number of NFTs owned by `owner`, possibly zero"
+ }
+ },
+ "getApproved(uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)"
+ },
+ "isApprovedForAll(address,address)": {
+ "details": "Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)"
+ },
+ "ownerOf(uint256)": {
+ "details": "NFTs assigned to zero address are considered invalid, and queries about them do throw.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)",
+ "params": {
+ "tokenId": "The identifier for an NFT"
+ },
+ "returns": {
+ "_0": "The address of the owner of the NFT"
+ }
+ },
+ "safeTransferFrom(address,address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "safeTransferFrom(address,address,uint256,bytes)": {
+ "details": "Not implementedEVM selector for this function is: 0xb88d4fde, or in textual repr: safeTransferFrom(address,address,uint256,bytes)"
+ },
+ "setApprovalForAll(address,bool)": {
+ "details": "Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ }
+ },
+ "title": "ERC-721 Non-Fungible Token Standard",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "getApproved(uint256)": "081812fc",
+ "isApprovedForAll(address,address)": "e985e9c5",
+ "ownerOf(uint256)": "6352211e",
+ "safeTransferFrom(address,address,uint256)": "42842e0e",
+ "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
+ "setApprovalForAll(address,bool)": "a22cb465",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.mdthe ERC-165 identifier for this interface is 0x80ac58cd\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\",\"params\":{\"approved\":\"The new approved NFT controller\",\"tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)\"},\"isApprovedForAll(address,address)\":{\"details\":\"Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)\"},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)\",\"params\":{\"tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Not implementedEVM selector for this function is: 0xb88d4fde, or in textual repr: safeTransferFrom(address,address,uint256,bytes)\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Set or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "approve(address,uint256)": {
+ "notice": "Set or reaffirm the approved address for an NFT"
+ },
+ "balanceOf(address)": {
+ "notice": "Count all NFTs assigned to an owner"
+ },
+ "ownerOf(uint256)": {
+ "notice": "Find the owner of an NFT"
+ },
+ "transferFrom(address,address,uint256)": {
+ "notice": "Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Burnable": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x42966c68",
+ "kind": "dev",
+ "methods": {
+ "burn(uint256)": {
+ "details": "Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)",
+ "params": {
+ "tokenId": "The NFT to approve"
+ }
+ }
+ },
+ "title": "ERC721 Token that can be irreversibly burned (destroyed).",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "burn(uint256)": "42966c68",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x42966c68\",\"kind\":\"dev\",\"methods\":{\"burn(uint256)\":{\"details\":\"Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)\",\"params\":{\"tokenId\":\"The NFT to approve\"}}},\"title\":\"ERC721 Token that can be irreversibly burned (destroyed).\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "burn(uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Enumerable": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x780e9d63",
+ "kind": "dev",
+ "methods": {
+ "tokenByIndex(uint256)": {
+ "details": "EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)",
+ "params": {
+ "index": "A counter less than `totalSupply()`"
+ },
+ "returns": {
+ "_0": "The token identifier for the `index`th NFT, (sort order not specified)"
+ }
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "totalSupply()": {
+ "details": "EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()",
+ "returns": {
+ "_0": "A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"
+ }
+ }
+ },
+ "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "tokenByIndex(uint256)": "4f6ccce7",
+ "tokenOfOwnerByIndex(address,uint256)": "2f745c59",
+ "totalSupply()": "18160ddd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x780e9d63\",\"kind\":\"dev\",\"methods\":{\"tokenByIndex(uint256)\":{\"details\":\"EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)\",\"params\":{\"index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)\"},\"totalSupply()\":{\"details\":\"EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\",\"returns\":{\"_0\":\"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid NFTs\"},\"totalSupply()\":{\"notice\":\"Count NFTs tracked by this contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "tokenByIndex(uint256)": {
+ "notice": "Enumerate valid NFTs"
+ },
+ "totalSupply()": {
+ "notice": "Count NFTs tracked by this contract"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Events": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721Events\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC721Metadata": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x5b5e139f",
+ "kind": "dev",
+ "methods": {
+ "tokenURI(uint256)": {
+ "details": "If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \"\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)",
+ "returns": {
+ "_0": "token's const_metadata"
+ }
+ }
+ },
+ "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "tokenURI(uint256)": "c87b56dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x5b5e139f\",\"kind\":\"dev\",\"methods\":{\"tokenURI(uint256)\":{\"details\":\"If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \\\"\\\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)\",\"returns\":{\"_0\":\"token's const_metadata\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "tokenURI(uint256)": {
+ "notice": "A distinct Uniform Resource Identifier (URI) for a given asset."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueExtensions": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "approved",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approveCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "to",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x244543ee",
+ "kind": "dev",
+ "methods": {
+ "approveCross((address,uint256),uint256)": {
+ "details": "The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x0ecd0ab0, or in textual repr: approveCross((address,uint256),uint256)",
+ "params": {
+ "approved": "The new substrate address approved NFT controller",
+ "tokenId": "The NFT to approve"
+ }
+ },
+ "burnFrom(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()"
+ },
+ "nextTokenId()": {
+ "details": "EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()"
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()"
+ },
+ "transfer(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)",
+ "params": {
+ "from": "Cross acccount address of current owner",
+ "to": "Cross acccount address of new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ }
+ },
+ "title": "Unique extensions for ERC721.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "approveCross((address,uint256),uint256)": "0ecd0ab0",
+ "burnFrom(address,uint256)": "79cc6790",
+ "burnFromCross((address,uint256),uint256)": "bb2f5a58",
+ "name()": "06fdde03",
+ "nextTokenId()": "75794a3c",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFromCross((address,uint256),(address,uint256),uint256)": "d5cf430b"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"approved\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approveCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x244543ee\",\"kind\":\"dev\",\"methods\":{\"approveCross((address,uint256),uint256)\":{\"details\":\"The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x0ecd0ab0, or in textual repr: approveCross((address,uint256),uint256)\",\"params\":{\"approved\":\"The new substrate address approved NFT controller\",\"tokenId\":\"The NFT to approve\"}},\"burnFrom(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"tokenId\":\"The NFT to transfer\"}},\"burnFromCross((address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"tokenId\":\"The NFT to transfer\"}},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\"},\"nextTokenId()\":{\"details\":\"EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()\"},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\"},\"transfer(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)\",\"params\":{\"from\":\"Cross acccount address of current owner\",\"to\":\"Cross acccount address of new owner\",\"tokenId\":\"The NFT to transfer\"}}},\"title\":\"Unique extensions for ERC721.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approveCross((address,uint256),uint256)\":{\"notice\":\"Set or reaffirm the approved address for an NFT\"},\"burnFrom(address,uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFromCross((address,uint256),uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"nextTokenId()\":{\"notice\":\"Returns next free NFT ID.\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer ownership of an NFT\"},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"notice\":\"Transfer ownership of an NFT from cross account address to cross account address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721UniqueExtensions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "approveCross((address,uint256),uint256)": {
+ "notice": "Set or reaffirm the approved address for an NFT"
+ },
+ "burnFrom(address,uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "name()": {
+ "notice": "A descriptive name for a collection of NFTs in this contract"
+ },
+ "nextTokenId()": {
+ "notice": "Returns next free NFT ID."
+ },
+ "symbol()": {
+ "notice": "An abbreviated name for NFTs in this contract"
+ },
+ "transfer(address,uint256)": {
+ "notice": "Transfer ownership of an NFT"
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "notice": "Transfer ownership of an NFT from cross account address to cross account address"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueMintable": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenUri",
+ "type": "string"
+ }
+ ],
+ "name": "mintWithTokenURI",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFinished",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x476ff149",
+ "kind": "dev",
+ "methods": {
+ "finishMinting()": {
+ "details": "Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()"
+ },
+ "mint(address)": {
+ "details": "EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)",
+ "params": {
+ "to": "The new owner"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintWithTokenURI(address,string)": {
+ "details": "EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)",
+ "params": {
+ "to": "The new owner",
+ "tokenUri": "Token URI that would be stored in the NFT properties"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintingFinished()": {
+ "details": "EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()"
+ }
+ },
+ "title": "ERC721 minting logic.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "finishMinting()": "7d64bcb4",
+ "mint(address)": "6a627842",
+ "mintWithTokenURI(address,string)": "45c17782",
+ "mintingFinished()": "05d2035b",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"finishMinting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintingFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x476ff149\",\"kind\":\"dev\",\"methods\":{\"finishMinting()\":{\"details\":\"Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()\"},\"mint(address)\":{\"details\":\"EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)\",\"params\":{\"to\":\"The new owner\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintWithTokenURI(address,string)\":{\"details\":\"EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)\",\"params\":{\"to\":\"The new owner\",\"tokenUri\":\"Token URI that would be stored in the NFT properties\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintingFinished()\":{\"details\":\"EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()\"}},\"title\":\"ERC721 minting logic.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mint(address)\":{\"notice\":\"Function to mint token.\"},\"mintWithTokenURI(address,string)\":{\"notice\":\"Function to mint token with the given tokenUri.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721UniqueMintable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "mint(address)": {
+ "notice": "Function to mint token."
+ },
+ "mintWithTokenURI(address,string)": {
+ "notice": "Function to mint token with the given tokenUri."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueMintableEvents": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"ERC721UniqueMintableEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "TokenProperties": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "property",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "isMutable",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "collectionAdmin",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "tokenOwner",
+ "type": "bool"
+ }
+ ],
+ "name": "setTokenPropertyPermission",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x55dba919",
+ "kind": "dev",
+ "methods": {
+ "deleteProperty(uint256,string)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ }
+ },
+ "property(uint256,string)": {
+ "details": "Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ },
+ "returns": {
+ "_0": "Property value bytes"
+ }
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])",
+ "params": {
+ "properties": "settable properties",
+ "tokenId": "ID of the token."
+ }
+ },
+ "setProperty(uint256,string,bytes)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token.",
+ "value": "Property value."
+ }
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "details": "Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)",
+ "params": {
+ "collectionAdmin": "Permission to mutate property by collection admin if property is mutable.",
+ "isMutable": "Permission to mutate property.",
+ "key": "Property key.",
+ "tokenOwner": "Permission to mutate property by token owner if property is mutable."
+ }
+ }
+ },
+ "title": "A contract that allows to set and delete token properties and change token property permissions.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "deleteProperty(uint256,string)": "066111d1",
+ "property(uint256,string)": "7228c327",
+ "setProperties(uint256,(string,bytes)[])": "14ed3a6e",
+ "setProperty(uint256,string,bytes)": "1752d67b",
+ "setTokenPropertyPermission(string,bool,bool,bool)": "222d97fa",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"property\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"collectionAdmin\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"tokenOwner\",\"type\":\"bool\"}],\"name\":\"setTokenPropertyPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x55dba919\",\"kind\":\"dev\",\"methods\":{\"deleteProperty(uint256,string)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"}},\"property(uint256,string)\":{\"details\":\"Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"},\"returns\":{\"_0\":\"Property value bytes\"}},\"setProperties(uint256,(string,bytes)[])\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])\",\"params\":{\"properties\":\"settable properties\",\"tokenId\":\"ID of the token.\"}},\"setProperty(uint256,string,bytes)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\",\"value\":\"Property value.\"}},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"details\":\"Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)\",\"params\":{\"collectionAdmin\":\"Permission to mutate property by collection admin if property is mutable.\",\"isMutable\":\"Permission to mutate property.\",\"key\":\"Property key.\",\"tokenOwner\":\"Permission to mutate property by token owner if property is mutable.\"}}},\"title\":\"A contract that allows to set and delete token properties and change token property permissions.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deleteProperty(uint256,string)\":{\"notice\":\"Delete token property value.\"},\"property(uint256,string)\":{\"notice\":\"Get token property value.\"},\"setProperties(uint256,(string,bytes)[])\":{\"notice\":\"Set token properties value.\"},\"setProperty(uint256,string,bytes)\":{\"notice\":\"Set token property value.\"},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"notice\":\"Set permissions for token property.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"TokenProperties\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "deleteProperty(uint256,string)": {
+ "notice": "Delete token property value."
+ },
+ "property(uint256,string)": {
+ "notice": "Get token property value."
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "notice": "Set token properties value."
+ },
+ "setProperty(uint256,string,bytes)": {
+ "notice": "Set token property value."
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "notice": "Set permissions for token property."
+ }
+ },
+ "version": 1
+ }
+ },
+ "UniqueNFT": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newAdmin",
+ "type": "tuple"
+ }
+ ],
+ "name": "addCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "addToCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "addToCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "allowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "approved",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approveCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "changeCollectionOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionAdmins",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionOwner",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "collectionProperties",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "collectionProperty",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionSponsor",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "field_0",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "field_1",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct Tuple24",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "confirmCollectionSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "deleteCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hasCollectionPendingSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isOwnerOrAdmin",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "isOwnerOrAdminCross",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenUri",
+ "type": "string"
+ }
+ ],
+ "name": "mintWithTokenURI",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFinished",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "property",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "admin",
+ "type": "address"
+ }
+ ],
+ "name": "removeCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "admin",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "removeCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeFromCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "mode",
+ "type": "uint8"
+ }
+ ],
+ "name": "setCollectionAccess",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "uint32",
+ "name": "value",
+ "type": "uint32"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "value",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "mode",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionMintMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "internalType": "address[]",
+ "name": "collections",
+ "type": "address[]"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "setCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "sponsor",
+ "type": "tuple"
+ }
+ ],
+ "name": "setCollectionSponsorCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newOwner",
+ "type": "tuple"
+ }
+ ],
+ "name": "setOwnerCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "isMutable",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "collectionAdmin",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "tokenOwner",
+ "type": "bool"
+ }
+ ],
+ "name": "setTokenPropertyPermission",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "to",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)",
+ "params": {
+ "newAdmin": "Address of the added administrator."
+ }
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))",
+ "params": {
+ "newAdmin": "Cross account administrator address."
+ }
+ },
+ "addToCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a trusted user."
+ }
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "allowed(address)": {
+ "details": "EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)",
+ "params": {
+ "user": "User address to check."
+ }
+ },
+ "approve(address,uint256)": {
+ "details": "The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)",
+ "params": {
+ "approved": "The new approved NFT controller",
+ "tokenId": "The NFT to approve"
+ }
+ },
+ "approveCross((address,uint256),uint256)": {
+ "details": "The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x0ecd0ab0, or in textual repr: approveCross((address,uint256),uint256)",
+ "params": {
+ "approved": "The new substrate address approved NFT controller",
+ "tokenId": "The NFT to approve"
+ }
+ },
+ "balanceOf(address)": {
+ "details": "NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "An address for whom to query the balance"
+ },
+ "returns": {
+ "_0": "The number of NFTs owned by `owner`, possibly zero"
+ }
+ },
+ "burn(uint256)": {
+ "details": "Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)",
+ "params": {
+ "tokenId": "The NFT to approve"
+ }
+ },
+ "burnFrom(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "changeCollectionOwner(address)": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)",
+ "params": {
+ "newOwner": "new owner account"
+ }
+ },
+ "collectionAdmins()": {
+ "details": "EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()",
+ "returns": {
+ "_0": "Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionOwner()": {
+ "details": "EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys. Empty keys for all propertyes."
+ },
+ "returns": {
+ "_0": "Vector of properties key/value pairs."
+ }
+ },
+ "collectionProperty(string)": {
+ "details": "Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ },
+ "returns": {
+ "_0": "bytes The property corresponding to the key."
+ }
+ },
+ "collectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw."
+ }
+ },
+ "confirmCollectionSponsorship()": {
+ "details": "After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()"
+ },
+ "contractAddress()": {
+ "details": "EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()"
+ },
+ "deleteCollectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys."
+ }
+ },
+ "deleteCollectionProperty(string)": {
+ "details": "EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ }
+ },
+ "deleteProperty(uint256,string)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ }
+ },
+ "finishMinting()": {
+ "details": "Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()"
+ },
+ "getApproved(uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)"
+ },
+ "hasCollectionPendingSponsor()": {
+ "details": "EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "isApprovedForAll(address,address)": {
+ "details": "Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)"
+ },
+ "isOwnerOrAdmin(address)": {
+ "details": "EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)",
+ "params": {
+ "user": "account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))",
+ "params": {
+ "user": "User cross account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "mint(address)": {
+ "details": "EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)",
+ "params": {
+ "to": "The new owner"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintWithTokenURI(address,string)": {
+ "details": "EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)",
+ "params": {
+ "to": "The new owner",
+ "tokenUri": "Token URI that would be stored in the NFT properties"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintingFinished()": {
+ "details": "EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()"
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()"
+ },
+ "nextTokenId()": {
+ "details": "EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()"
+ },
+ "ownerOf(uint256)": {
+ "details": "NFTs assigned to zero address are considered invalid, and queries about them do throw.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)",
+ "params": {
+ "tokenId": "The identifier for an NFT"
+ },
+ "returns": {
+ "_0": "The address of the owner of the NFT"
+ }
+ },
+ "property(uint256,string)": {
+ "details": "Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ },
+ "returns": {
+ "_0": "Property value bytes"
+ }
+ },
+ "removeCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)",
+ "params": {
+ "admin": "Address of the removed administrator."
+ }
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))",
+ "params": {
+ "admin": "Cross account administrator address."
+ }
+ },
+ "removeCollectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()"
+ },
+ "removeFromCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a removed user."
+ }
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "safeTransferFrom(address,address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "safeTransferFrom(address,address,uint256,bytes)": {
+ "details": "Not implementedEVM selector for this function is: 0xb88d4fde, or in textual repr: safeTransferFrom(address,address,uint256,bytes)"
+ },
+ "setApprovalForAll(address,bool)": {
+ "details": "Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "setCollectionAccess(uint8)": {
+ "details": "EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)",
+ "params": {
+ "mode": "Access mode \t0 for Normal \t1 for AllowList"
+ }
+ },
+ "setCollectionLimit(string,bool)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"ownerCanTransfer\", \t\"ownerCanDestroy\", \t\"transfersEnabled\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionLimit(string,uint32)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"accountTokenOwnershipLimit\", \t\"sponsoredDataSize\", \t\"sponsoredDataRateLimit\", \t\"tokenLimit\", \t\"sponsorTransferTimeout\", \t\"sponsorApproveTimeout\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionMintMode(bool)": {
+ "details": "EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)",
+ "params": {
+ "mode": "Enable if \"true\"."
+ }
+ },
+ "setCollectionNesting(bool)": {
+ "details": "EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)",
+ "params": {
+ "enable": "If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionNesting(bool,address[])": {
+ "details": "EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])",
+ "params": {
+ "collections": "Addresses of collections that will be available for nesting.",
+ "enable": "If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "details": "EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])",
+ "params": {
+ "properties": "Vector of properties key/value pair."
+ }
+ },
+ "setCollectionProperty(string,bytes)": {
+ "details": "EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "value": "Propery value."
+ }
+ },
+ "setCollectionSponsor(address)": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)",
+ "params": {
+ "sponsor": "Address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))",
+ "params": {
+ "sponsor": "Cross account address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setOwnerCross((address,uint256))": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))",
+ "params": {
+ "newOwner": "new owner cross account"
+ }
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])",
+ "params": {
+ "properties": "settable properties",
+ "tokenId": "ID of the token."
+ }
+ },
+ "setProperty(uint256,string,bytes)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token.",
+ "value": "Property value."
+ }
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "details": "Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)",
+ "params": {
+ "collectionAdmin": "Permission to mutate property by collection admin if property is mutable.",
+ "isMutable": "Permission to mutate property.",
+ "key": "Property key.",
+ "tokenOwner": "Permission to mutate property by token owner if property is mutable."
+ }
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()"
+ },
+ "tokenByIndex(uint256)": {
+ "details": "EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)",
+ "params": {
+ "index": "A counter less than `totalSupply()`"
+ },
+ "returns": {
+ "_0": "The token identifier for the `index`th NFT, (sort order not specified)"
+ }
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "tokenURI(uint256)": {
+ "details": "If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \"\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)",
+ "returns": {
+ "_0": "token's const_metadata"
+ }
+ },
+ "totalSupply()": {
+ "details": "EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()",
+ "returns": {
+ "_0": "A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"
+ }
+ },
+ "transfer(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)",
+ "params": {
+ "from": "Cross acccount address of current owner",
+ "to": "Cross acccount address of new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "uniqueCollectionType()": {
+ "details": "EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()",
+ "returns": {
+ "_0": "`Fungible` or `NFT` or `ReFungible`"
+ }
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "addCollectionAdmin(address)": "92e462c7",
+ "addCollectionAdminCross((address,uint256))": "859aa7d6",
+ "addToCollectionAllowList(address)": "67844fe6",
+ "addToCollectionAllowListCross((address,uint256))": "a0184a3a",
+ "allowed(address)": "d63a8e11",
+ "approve(address,uint256)": "095ea7b3",
+ "approveCross((address,uint256),uint256)": "0ecd0ab0",
+ "balanceOf(address)": "70a08231",
+ "burn(uint256)": "42966c68",
+ "burnFrom(address,uint256)": "79cc6790",
+ "burnFromCross((address,uint256),uint256)": "bb2f5a58",
+ "changeCollectionOwner(address)": "4f53e226",
+ "collectionAdmins()": "5813216b",
+ "collectionOwner()": "df727d3b",
+ "collectionProperties(string[])": "285fb8e6",
+ "collectionProperty(string)": "cf24fd6d",
+ "collectionSponsor()": "6ec0a9f1",
+ "confirmCollectionSponsorship()": "3c50e97a",
+ "contractAddress()": "f6b4dfb4",
+ "deleteCollectionProperties(string[])": "ee206ee3",
+ "deleteCollectionProperty(string)": "7b7debce",
+ "deleteProperty(uint256,string)": "066111d1",
+ "finishMinting()": "7d64bcb4",
+ "getApproved(uint256)": "081812fc",
+ "hasCollectionPendingSponsor()": "058ac185",
+ "isApprovedForAll(address,address)": "e985e9c5",
+ "isOwnerOrAdmin(address)": "9811b0c7",
+ "isOwnerOrAdminCross((address,uint256))": "3e75a905",
+ "mint(address)": "6a627842",
+ "mintWithTokenURI(address,string)": "45c17782",
+ "mintingFinished()": "05d2035b",
+ "name()": "06fdde03",
+ "nextTokenId()": "75794a3c",
+ "ownerOf(uint256)": "6352211e",
+ "property(uint256,string)": "7228c327",
+ "removeCollectionAdmin(address)": "fafd7b42",
+ "removeCollectionAdminCross((address,uint256))": "6c0cd173",
+ "removeCollectionSponsor()": "6e0326a3",
+ "removeFromCollectionAllowList(address)": "85c51acb",
+ "removeFromCollectionAllowListCross((address,uint256))": "09ba452a",
+ "safeTransferFrom(address,address,uint256)": "42842e0e",
+ "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
+ "setApprovalForAll(address,bool)": "a22cb465",
+ "setCollectionAccess(uint8)": "41835d4c",
+ "setCollectionLimit(string,bool)": "993b7fba",
+ "setCollectionLimit(string,uint32)": "6a3841db",
+ "setCollectionMintMode(bool)": "00018e84",
+ "setCollectionNesting(bool)": "112d4586",
+ "setCollectionNesting(bool,address[])": "64872396",
+ "setCollectionProperties((string,bytes)[])": "50b26b2a",
+ "setCollectionProperty(string,bytes)": "2f073f66",
+ "setCollectionSponsor(address)": "7623402e",
+ "setCollectionSponsorCross((address,uint256))": "84a1d5a8",
+ "setOwnerCross((address,uint256))": "e5c9913f",
+ "setProperties(uint256,(string,bytes)[])": "14ed3a6e",
+ "setProperty(uint256,string,bytes)": "1752d67b",
+ "setTokenPropertyPermission(string,bool,bool,bool)": "222d97fa",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "tokenByIndex(uint256)": "4f6ccce7",
+ "tokenOfOwnerByIndex(address,uint256)": "2f745c59",
+ "tokenURI(uint256)": "c87b56dd",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd",
+ "transferFromCross((address,uint256),(address,uint256),uint256)": "d5cf430b",
+ "uniqueCollectionType()": "d34b55b8"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newAdmin\",\"type\":\"tuple\"}],\"name\":\"addCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addToCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"addToCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"allowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"approved\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approveCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeCollectionOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionAdmins\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"collectionProperties\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"collectionProperty\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionSponsor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"field_0\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"field_1\",\"type\":\"uint256\"}],\"internalType\":\"struct Tuple24\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmCollectionSponsorship\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"deleteCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishMinting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasCollectionPendingSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwnerOrAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"isOwnerOrAdminCross\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintingFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"property\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"admin\",\"type\":\"tuple\"}],\"name\":\"removeCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeFromCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"removeFromCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setCollectionAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"mode\",\"type\":\"bool\"}],\"name\":\"setCollectionMintMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"collections\",\"type\":\"address[]\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"setCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"sponsor\",\"type\":\"tuple\"}],\"name\":\"setCollectionSponsorCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newOwner\",\"type\":\"tuple\"}],\"name\":\"setOwnerCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"collectionAdmin\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"tokenOwner\",\"type\":\"bool\"}],\"name\":\"setTokenPropertyPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniqueCollectionType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)\",\"params\":{\"newAdmin\":\"Address of the added administrator.\"}},\"addCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))\",\"params\":{\"newAdmin\":\"Cross account administrator address.\"}},\"addToCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a trusted user.\"}},\"addToCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"allowed(address)\":{\"details\":\"EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)\",\"params\":{\"user\":\"User address to check.\"}},\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\",\"params\":{\"approved\":\"The new approved NFT controller\",\"tokenId\":\"The NFT to approve\"}},\"approveCross((address,uint256),uint256)\":{\"details\":\"The zero address indicates there is no approved address.Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x0ecd0ab0, or in textual repr: approveCross((address,uint256),uint256)\",\"params\":{\"approved\":\"The new substrate address approved NFT controller\",\"tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `owner`, possibly zero\"}},\"burn(uint256)\":{\"details\":\"Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)\",\"params\":{\"tokenId\":\"The NFT to approve\"}},\"burnFrom(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"tokenId\":\"The NFT to transfer\"}},\"burnFromCross((address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"tokenId\":\"The NFT to transfer\"}},\"changeCollectionOwner(address)\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)\",\"params\":{\"newOwner\":\"new owner account\"}},\"collectionAdmins()\":{\"details\":\"EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()\",\"returns\":{\"_0\":\"Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionOwner()\":{\"details\":\"EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys. Empty keys for all propertyes.\"},\"returns\":{\"_0\":\"Vector of properties key/value pairs.\"}},\"collectionProperty(string)\":{\"details\":\"Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)\",\"params\":{\"key\":\"Property key.\"},\"returns\":{\"_0\":\"bytes The property corresponding to the key.\"}},\"collectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \\\"Contract has no sponsor\\\" throw.\"}},\"confirmCollectionSponsorship()\":{\"details\":\"After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()\"},\"contractAddress()\":{\"details\":\"EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()\"},\"deleteCollectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys.\"}},\"deleteCollectionProperty(string)\":{\"details\":\"EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)\",\"params\":{\"key\":\"Property key.\"}},\"deleteProperty(uint256,string)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"}},\"finishMinting()\":{\"details\":\"Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()\"},\"getApproved(uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)\"},\"hasCollectionPendingSponsor()\":{\"details\":\"EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()\"},\"isApprovedForAll(address,address)\":{\"details\":\"Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)\"},\"isOwnerOrAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)\",\"params\":{\"user\":\"account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"isOwnerOrAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))\",\"params\":{\"user\":\"User cross account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"mint(address)\":{\"details\":\"EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)\",\"params\":{\"to\":\"The new owner\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintWithTokenURI(address,string)\":{\"details\":\"EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)\",\"params\":{\"to\":\"The new owner\",\"tokenUri\":\"Token URI that would be stored in the NFT properties\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintingFinished()\":{\"details\":\"EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()\"},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\"},\"nextTokenId()\":{\"details\":\"EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()\"},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)\",\"params\":{\"tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"property(uint256,string)\":{\"details\":\"Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"},\"returns\":{\"_0\":\"Property value bytes\"}},\"removeCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)\",\"params\":{\"admin\":\"Address of the removed administrator.\"}},\"removeCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))\",\"params\":{\"admin\":\"Cross account administrator address.\"}},\"removeCollectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()\"},\"removeFromCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a removed user.\"}},\"removeFromCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Not implementedEVM selector for this function is: 0xb88d4fde, or in textual repr: safeTransferFrom(address,address,uint256,bytes)\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)\"},\"setCollectionAccess(uint8)\":{\"details\":\"EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)\",\"params\":{\"mode\":\"Access mode \\t0 for Normal \\t1 for AllowList\"}},\"setCollectionLimit(string,bool)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"ownerCanTransfer\\\", \\t\\\"ownerCanDestroy\\\", \\t\\\"transfersEnabled\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionLimit(string,uint32)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"accountTokenOwnershipLimit\\\", \\t\\\"sponsoredDataSize\\\", \\t\\\"sponsoredDataRateLimit\\\", \\t\\\"tokenLimit\\\", \\t\\\"sponsorTransferTimeout\\\", \\t\\\"sponsorApproveTimeout\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionMintMode(bool)\":{\"details\":\"EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)\",\"params\":{\"mode\":\"Enable if \\\"true\\\".\"}},\"setCollectionNesting(bool)\":{\"details\":\"EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)\",\"params\":{\"enable\":\"If \\\"true\\\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\"}},\"setCollectionNesting(bool,address[])\":{\"details\":\"EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])\",\"params\":{\"collections\":\"Addresses of collections that will be available for nesting.\",\"enable\":\"If \\\"true\\\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\"}},\"setCollectionProperties((string,bytes)[])\":{\"details\":\"EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])\",\"params\":{\"properties\":\"Vector of properties key/value pair.\"}},\"setCollectionProperty(string,bytes)\":{\"details\":\"EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)\",\"params\":{\"key\":\"Property key.\",\"value\":\"Propery value.\"}},\"setCollectionSponsor(address)\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)\",\"params\":{\"sponsor\":\"Address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setCollectionSponsorCross((address,uint256))\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))\",\"params\":{\"sponsor\":\"Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setOwnerCross((address,uint256))\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))\",\"params\":{\"newOwner\":\"new owner cross account\"}},\"setProperties(uint256,(string,bytes)[])\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])\",\"params\":{\"properties\":\"settable properties\",\"tokenId\":\"ID of the token.\"}},\"setProperty(uint256,string,bytes)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\",\"value\":\"Property value.\"}},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"details\":\"Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)\",\"params\":{\"collectionAdmin\":\"Permission to mutate property by collection admin if property is mutable.\",\"isMutable\":\"Permission to mutate property.\",\"key\":\"Property key.\",\"tokenOwner\":\"Permission to mutate property by token owner if property is mutable.\"}},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\"},\"tokenByIndex(uint256)\":{\"details\":\"EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)\",\"params\":{\"index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)\"},\"tokenURI(uint256)\":{\"details\":\"If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \\\"\\\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)\",\"returns\":{\"_0\":\"token's const_metadata\"}},\"totalSupply()\":{\"details\":\"EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\",\"returns\":{\"_0\":\"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}},\"transfer(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this NFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid NFT.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)\",\"params\":{\"from\":\"Cross acccount address of current owner\",\"to\":\"Cross acccount address of new owner\",\"tokenId\":\"The NFT to transfer\"}},\"uniqueCollectionType()\":{\"details\":\"EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()\",\"returns\":{\"_0\":\"`Fungible` or `NFT` or `ReFungible`\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCollectionAdmin(address)\":{\"notice\":\"Add collection admin.\"},\"addCollectionAdminCross((address,uint256))\":{\"notice\":\"Add collection admin.\"},\"addToCollectionAllowList(address)\":{\"notice\":\"Add the user to the allowed list.\"},\"addToCollectionAllowListCross((address,uint256))\":{\"notice\":\"Add user to allowed list.\"},\"allowed(address)\":{\"notice\":\"Checks that user allowed to operate with collection.\"},\"approve(address,uint256)\":{\"notice\":\"Set or reaffirm the approved address for an NFT\"},\"approveCross((address,uint256),uint256)\":{\"notice\":\"Set or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"burn(uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFrom(address,uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFromCross((address,uint256),uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"changeCollectionOwner(address)\":{\"notice\":\"Changes collection owner to another account\"},\"collectionAdmins()\":{\"notice\":\"Get collection administrators\"},\"collectionOwner()\":{\"notice\":\"Get collection owner.\"},\"collectionProperties(string[])\":{\"notice\":\"Get collection properties.\"},\"collectionProperty(string)\":{\"notice\":\"Get collection property.\"},\"collectionSponsor()\":{\"notice\":\"Get current sponsor.\"},\"confirmCollectionSponsorship()\":{\"notice\":\"Collection sponsorship confirmation.\"},\"contractAddress()\":{\"notice\":\"Get contract address.\"},\"deleteCollectionProperties(string[])\":{\"notice\":\"Delete collection properties.\"},\"deleteCollectionProperty(string)\":{\"notice\":\"Delete collection property.\"},\"deleteProperty(uint256,string)\":{\"notice\":\"Delete token property value.\"},\"hasCollectionPendingSponsor()\":{\"notice\":\"Whether there is a pending sponsor.\"},\"isOwnerOrAdmin(address)\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"isOwnerOrAdminCross((address,uint256))\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"mint(address)\":{\"notice\":\"Function to mint token.\"},\"mintWithTokenURI(address,string)\":{\"notice\":\"Function to mint token with the given tokenUri.\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"nextTokenId()\":{\"notice\":\"Returns next free NFT ID.\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"property(uint256,string)\":{\"notice\":\"Get token property value.\"},\"removeCollectionAdmin(address)\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionAdminCross((address,uint256))\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionSponsor()\":{\"notice\":\"Remove collection sponsor.\"},\"removeFromCollectionAllowList(address)\":{\"notice\":\"Remove the user from the allowed list.\"},\"removeFromCollectionAllowListCross((address,uint256))\":{\"notice\":\"Remove user from allowed list.\"},\"setCollectionAccess(uint8)\":{\"notice\":\"Set the collection access method.\"},\"setCollectionLimit(string,bool)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionLimit(string,uint32)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionMintMode(bool)\":{\"notice\":\"Switch permission for minting.\"},\"setCollectionNesting(bool)\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionNesting(bool,address[])\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionProperties((string,bytes)[])\":{\"notice\":\"Set collection properties.\"},\"setCollectionProperty(string,bytes)\":{\"notice\":\"Set collection property.\"},\"setCollectionSponsor(address)\":{\"notice\":\"Set the sponsor of the collection.\"},\"setCollectionSponsorCross((address,uint256))\":{\"notice\":\"Set the sponsor of the collection.\"},\"setOwnerCross((address,uint256))\":{\"notice\":\"Changes collection owner to another account\"},\"setProperties(uint256,(string,bytes)[])\":{\"notice\":\"Set token properties value.\"},\"setProperty(uint256,string,bytes)\":{\"notice\":\"Set token property value.\"},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"notice\":\"Set permissions for token property.\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid NFTs\"},\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"},\"totalSupply()\":{\"notice\":\"Count NFTs tracked by this contract\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer ownership of an NFT\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"notice\":\"Transfer ownership of an NFT from cross account address to cross account address\"},\"uniqueCollectionType()\":{\"notice\":\"Returns collection type\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":\"UniqueNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "notice": "Add collection admin."
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "notice": "Add collection admin."
+ },
+ "addToCollectionAllowList(address)": {
+ "notice": "Add the user to the allowed list."
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "notice": "Add user to allowed list."
+ },
+ "allowed(address)": {
+ "notice": "Checks that user allowed to operate with collection."
+ },
+ "approve(address,uint256)": {
+ "notice": "Set or reaffirm the approved address for an NFT"
+ },
+ "approveCross((address,uint256),uint256)": {
+ "notice": "Set or reaffirm the approved address for an NFT"
+ },
+ "balanceOf(address)": {
+ "notice": "Count all NFTs assigned to an owner"
+ },
+ "burn(uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFrom(address,uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "changeCollectionOwner(address)": {
+ "notice": "Changes collection owner to another account"
+ },
+ "collectionAdmins()": {
+ "notice": "Get collection administrators"
+ },
+ "collectionOwner()": {
+ "notice": "Get collection owner."
+ },
+ "collectionProperties(string[])": {
+ "notice": "Get collection properties."
+ },
+ "collectionProperty(string)": {
+ "notice": "Get collection property."
+ },
+ "collectionSponsor()": {
+ "notice": "Get current sponsor."
+ },
+ "confirmCollectionSponsorship()": {
+ "notice": "Collection sponsorship confirmation."
+ },
+ "contractAddress()": {
+ "notice": "Get contract address."
+ },
+ "deleteCollectionProperties(string[])": {
+ "notice": "Delete collection properties."
+ },
+ "deleteCollectionProperty(string)": {
+ "notice": "Delete collection property."
+ },
+ "deleteProperty(uint256,string)": {
+ "notice": "Delete token property value."
+ },
+ "hasCollectionPendingSponsor()": {
+ "notice": "Whether there is a pending sponsor."
+ },
+ "isOwnerOrAdmin(address)": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "mint(address)": {
+ "notice": "Function to mint token."
+ },
+ "mintWithTokenURI(address,string)": {
+ "notice": "Function to mint token with the given tokenUri."
+ },
+ "name()": {
+ "notice": "A descriptive name for a collection of NFTs in this contract"
+ },
+ "nextTokenId()": {
+ "notice": "Returns next free NFT ID."
+ },
+ "ownerOf(uint256)": {
+ "notice": "Find the owner of an NFT"
+ },
+ "property(uint256,string)": {
+ "notice": "Get token property value."
+ },
+ "removeCollectionAdmin(address)": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionSponsor()": {
+ "notice": "Remove collection sponsor."
+ },
+ "removeFromCollectionAllowList(address)": {
+ "notice": "Remove the user from the allowed list."
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "notice": "Remove user from allowed list."
+ },
+ "setCollectionAccess(uint8)": {
+ "notice": "Set the collection access method."
+ },
+ "setCollectionLimit(string,bool)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionLimit(string,uint32)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionMintMode(bool)": {
+ "notice": "Switch permission for minting."
+ },
+ "setCollectionNesting(bool)": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionNesting(bool,address[])": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "notice": "Set collection properties."
+ },
+ "setCollectionProperty(string,bytes)": {
+ "notice": "Set collection property."
+ },
+ "setCollectionSponsor(address)": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setOwnerCross((address,uint256))": {
+ "notice": "Changes collection owner to another account"
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "notice": "Set token properties value."
+ },
+ "setProperty(uint256,string,bytes)": {
+ "notice": "Set token property value."
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "notice": "Set permissions for token property."
+ },
+ "symbol()": {
+ "notice": "An abbreviated name for NFTs in this contract"
+ },
+ "tokenByIndex(uint256)": {
+ "notice": "Enumerate valid NFTs"
+ },
+ "tokenURI(uint256)": {
+ "notice": "A distinct Uniform Resource Identifier (URI) for a given asset."
+ },
+ "totalSupply()": {
+ "notice": "Count NFTs tracked by this contract"
+ },
+ "transfer(address,uint256)": {
+ "notice": "Transfer ownership of an NFT"
+ },
+ "transferFrom(address,address,uint256)": {
+ "notice": "Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "notice": "Transfer ownership of an NFT from cross account address to cross account address"
+ },
+ "uniqueCollectionType()": {
+ "notice": "Returns collection type"
+ }
+ },
+ "version": 1
+ }
+ }
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol": {
+ "Collection": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newAdmin",
+ "type": "tuple"
+ }
+ ],
+ "name": "addCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "addToCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "addToCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "allowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "changeCollectionOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionAdmins",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionOwner",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "collectionProperties",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "collectionProperty",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionSponsor",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "field_0",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "field_1",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct Tuple23",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "confirmCollectionSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "deleteCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hasCollectionPendingSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isOwnerOrAdmin",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "isOwnerOrAdminCross",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "admin",
+ "type": "address"
+ }
+ ],
+ "name": "removeCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "admin",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "removeCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeFromCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "mode",
+ "type": "uint8"
+ }
+ ],
+ "name": "setCollectionAccess",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "uint32",
+ "name": "value",
+ "type": "uint32"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "value",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "mode",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionMintMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "internalType": "address[]",
+ "name": "collections",
+ "type": "address[]"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "setCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "sponsor",
+ "type": "tuple"
+ }
+ ],
+ "name": "setCollectionSponsorCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newOwner",
+ "type": "tuple"
+ }
+ ],
+ "name": "setOwnerCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0xb3152af3",
+ "kind": "dev",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)",
+ "params": {
+ "newAdmin": "Address of the added administrator."
+ }
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))",
+ "params": {
+ "newAdmin": "Cross account administrator address."
+ }
+ },
+ "addToCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a trusted user."
+ }
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "allowed(address)": {
+ "details": "EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)",
+ "params": {
+ "user": "User address to check."
+ }
+ },
+ "changeCollectionOwner(address)": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)",
+ "params": {
+ "newOwner": "new owner account"
+ }
+ },
+ "collectionAdmins()": {
+ "details": "EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()",
+ "returns": {
+ "_0": "Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionOwner()": {
+ "details": "EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys. Empty keys for all propertyes."
+ },
+ "returns": {
+ "_0": "Vector of properties key/value pairs."
+ }
+ },
+ "collectionProperty(string)": {
+ "details": "Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ },
+ "returns": {
+ "_0": "bytes The property corresponding to the key."
+ }
+ },
+ "collectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw."
+ }
+ },
+ "confirmCollectionSponsorship()": {
+ "details": "After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()"
+ },
+ "contractAddress()": {
+ "details": "EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()"
+ },
+ "deleteCollectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys."
+ }
+ },
+ "deleteCollectionProperty(string)": {
+ "details": "EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ }
+ },
+ "hasCollectionPendingSponsor()": {
+ "details": "EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "isOwnerOrAdmin(address)": {
+ "details": "EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)",
+ "params": {
+ "user": "account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))",
+ "params": {
+ "user": "User cross account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "removeCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)",
+ "params": {
+ "admin": "Address of the removed administrator."
+ }
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))",
+ "params": {
+ "admin": "Cross account administrator address."
+ }
+ },
+ "removeCollectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()"
+ },
+ "removeFromCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a removed user."
+ }
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "setCollectionAccess(uint8)": {
+ "details": "EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)",
+ "params": {
+ "mode": "Access mode \t0 for Normal \t1 for AllowList"
+ }
+ },
+ "setCollectionLimit(string,bool)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"ownerCanTransfer\", \t\"ownerCanDestroy\", \t\"transfersEnabled\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionLimit(string,uint32)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"accountTokenOwnershipLimit\", \t\"sponsoredDataSize\", \t\"sponsoredDataRateLimit\", \t\"tokenLimit\", \t\"sponsorTransferTimeout\", \t\"sponsorApproveTimeout\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionMintMode(bool)": {
+ "details": "EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)",
+ "params": {
+ "mode": "Enable if \"true\"."
+ }
+ },
+ "setCollectionNesting(bool)": {
+ "details": "EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)",
+ "params": {
+ "enable": "If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionNesting(bool,address[])": {
+ "details": "EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])",
+ "params": {
+ "collections": "Addresses of collections that will be available for nesting.",
+ "enable": "If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "details": "EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])",
+ "params": {
+ "properties": "Vector of properties key/value pair."
+ }
+ },
+ "setCollectionProperty(string,bytes)": {
+ "details": "EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "value": "Propery value."
+ }
+ },
+ "setCollectionSponsor(address)": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)",
+ "params": {
+ "sponsor": "Address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))",
+ "params": {
+ "sponsor": "Cross account address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setOwnerCross((address,uint256))": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))",
+ "params": {
+ "newOwner": "new owner cross account"
+ }
+ },
+ "uniqueCollectionType()": {
+ "details": "EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()",
+ "returns": {
+ "_0": "`Fungible` or `NFT` or `ReFungible`"
+ }
+ }
+ },
+ "title": "A contract that allows you to work with collections.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "addCollectionAdmin(address)": "92e462c7",
+ "addCollectionAdminCross((address,uint256))": "859aa7d6",
+ "addToCollectionAllowList(address)": "67844fe6",
+ "addToCollectionAllowListCross((address,uint256))": "a0184a3a",
+ "allowed(address)": "d63a8e11",
+ "changeCollectionOwner(address)": "4f53e226",
+ "collectionAdmins()": "5813216b",
+ "collectionOwner()": "df727d3b",
+ "collectionProperties(string[])": "285fb8e6",
+ "collectionProperty(string)": "cf24fd6d",
+ "collectionSponsor()": "6ec0a9f1",
+ "confirmCollectionSponsorship()": "3c50e97a",
+ "contractAddress()": "f6b4dfb4",
+ "deleteCollectionProperties(string[])": "ee206ee3",
+ "deleteCollectionProperty(string)": "7b7debce",
+ "hasCollectionPendingSponsor()": "058ac185",
+ "isOwnerOrAdmin(address)": "9811b0c7",
+ "isOwnerOrAdminCross((address,uint256))": "3e75a905",
+ "removeCollectionAdmin(address)": "fafd7b42",
+ "removeCollectionAdminCross((address,uint256))": "6c0cd173",
+ "removeCollectionSponsor()": "6e0326a3",
+ "removeFromCollectionAllowList(address)": "85c51acb",
+ "removeFromCollectionAllowListCross((address,uint256))": "09ba452a",
+ "setCollectionAccess(uint8)": "41835d4c",
+ "setCollectionLimit(string,bool)": "993b7fba",
+ "setCollectionLimit(string,uint32)": "6a3841db",
+ "setCollectionMintMode(bool)": "00018e84",
+ "setCollectionNesting(bool)": "112d4586",
+ "setCollectionNesting(bool,address[])": "64872396",
+ "setCollectionProperties((string,bytes)[])": "50b26b2a",
+ "setCollectionProperty(string,bytes)": "2f073f66",
+ "setCollectionSponsor(address)": "7623402e",
+ "setCollectionSponsorCross((address,uint256))": "84a1d5a8",
+ "setOwnerCross((address,uint256))": "e5c9913f",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "uniqueCollectionType()": "d34b55b8"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newAdmin\",\"type\":\"tuple\"}],\"name\":\"addCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addToCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"addToCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"allowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeCollectionOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionAdmins\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"collectionProperties\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"collectionProperty\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionSponsor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"field_0\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"field_1\",\"type\":\"uint256\"}],\"internalType\":\"struct Tuple23\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmCollectionSponsorship\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"deleteCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasCollectionPendingSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwnerOrAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"isOwnerOrAdminCross\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"admin\",\"type\":\"tuple\"}],\"name\":\"removeCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeFromCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"removeFromCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setCollectionAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"mode\",\"type\":\"bool\"}],\"name\":\"setCollectionMintMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"collections\",\"type\":\"address[]\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"setCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"sponsor\",\"type\":\"tuple\"}],\"name\":\"setCollectionSponsorCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newOwner\",\"type\":\"tuple\"}],\"name\":\"setOwnerCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniqueCollectionType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0xb3152af3\",\"kind\":\"dev\",\"methods\":{\"addCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)\",\"params\":{\"newAdmin\":\"Address of the added administrator.\"}},\"addCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))\",\"params\":{\"newAdmin\":\"Cross account administrator address.\"}},\"addToCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a trusted user.\"}},\"addToCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"allowed(address)\":{\"details\":\"EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)\",\"params\":{\"user\":\"User address to check.\"}},\"changeCollectionOwner(address)\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)\",\"params\":{\"newOwner\":\"new owner account\"}},\"collectionAdmins()\":{\"details\":\"EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()\",\"returns\":{\"_0\":\"Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionOwner()\":{\"details\":\"EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys. Empty keys for all propertyes.\"},\"returns\":{\"_0\":\"Vector of properties key/value pairs.\"}},\"collectionProperty(string)\":{\"details\":\"Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)\",\"params\":{\"key\":\"Property key.\"},\"returns\":{\"_0\":\"bytes The property corresponding to the key.\"}},\"collectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \\\"Contract has no sponsor\\\" throw.\"}},\"confirmCollectionSponsorship()\":{\"details\":\"After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()\"},\"contractAddress()\":{\"details\":\"EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()\"},\"deleteCollectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys.\"}},\"deleteCollectionProperty(string)\":{\"details\":\"EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)\",\"params\":{\"key\":\"Property key.\"}},\"hasCollectionPendingSponsor()\":{\"details\":\"EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()\"},\"isOwnerOrAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)\",\"params\":{\"user\":\"account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"isOwnerOrAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))\",\"params\":{\"user\":\"User cross account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"removeCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)\",\"params\":{\"admin\":\"Address of the removed administrator.\"}},\"removeCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))\",\"params\":{\"admin\":\"Cross account administrator address.\"}},\"removeCollectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()\"},\"removeFromCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a removed user.\"}},\"removeFromCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"setCollectionAccess(uint8)\":{\"details\":\"EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)\",\"params\":{\"mode\":\"Access mode \\t0 for Normal \\t1 for AllowList\"}},\"setCollectionLimit(string,bool)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"ownerCanTransfer\\\", \\t\\\"ownerCanDestroy\\\", \\t\\\"transfersEnabled\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionLimit(string,uint32)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"accountTokenOwnershipLimit\\\", \\t\\\"sponsoredDataSize\\\", \\t\\\"sponsoredDataRateLimit\\\", \\t\\\"tokenLimit\\\", \\t\\\"sponsorTransferTimeout\\\", \\t\\\"sponsorApproveTimeout\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionMintMode(bool)\":{\"details\":\"EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)\",\"params\":{\"mode\":\"Enable if \\\"true\\\".\"}},\"setCollectionNesting(bool)\":{\"details\":\"EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)\",\"params\":{\"enable\":\"If \\\"true\\\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\"}},\"setCollectionNesting(bool,address[])\":{\"details\":\"EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])\",\"params\":{\"collections\":\"Addresses of collections that will be available for nesting.\",\"enable\":\"If \\\"true\\\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\"}},\"setCollectionProperties((string,bytes)[])\":{\"details\":\"EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])\",\"params\":{\"properties\":\"Vector of properties key/value pair.\"}},\"setCollectionProperty(string,bytes)\":{\"details\":\"EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)\",\"params\":{\"key\":\"Property key.\",\"value\":\"Propery value.\"}},\"setCollectionSponsor(address)\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)\",\"params\":{\"sponsor\":\"Address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setCollectionSponsorCross((address,uint256))\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))\",\"params\":{\"sponsor\":\"Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setOwnerCross((address,uint256))\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))\",\"params\":{\"newOwner\":\"new owner cross account\"}},\"uniqueCollectionType()\":{\"details\":\"EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()\",\"returns\":{\"_0\":\"`Fungible` or `NFT` or `ReFungible`\"}}},\"title\":\"A contract that allows you to work with collections.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCollectionAdmin(address)\":{\"notice\":\"Add collection admin.\"},\"addCollectionAdminCross((address,uint256))\":{\"notice\":\"Add collection admin.\"},\"addToCollectionAllowList(address)\":{\"notice\":\"Add the user to the allowed list.\"},\"addToCollectionAllowListCross((address,uint256))\":{\"notice\":\"Add user to allowed list.\"},\"allowed(address)\":{\"notice\":\"Checks that user allowed to operate with collection.\"},\"changeCollectionOwner(address)\":{\"notice\":\"Changes collection owner to another account\"},\"collectionAdmins()\":{\"notice\":\"Get collection administrators\"},\"collectionOwner()\":{\"notice\":\"Get collection owner.\"},\"collectionProperties(string[])\":{\"notice\":\"Get collection properties.\"},\"collectionProperty(string)\":{\"notice\":\"Get collection property.\"},\"collectionSponsor()\":{\"notice\":\"Get current sponsor.\"},\"confirmCollectionSponsorship()\":{\"notice\":\"Collection sponsorship confirmation.\"},\"contractAddress()\":{\"notice\":\"Get contract address.\"},\"deleteCollectionProperties(string[])\":{\"notice\":\"Delete collection properties.\"},\"deleteCollectionProperty(string)\":{\"notice\":\"Delete collection property.\"},\"hasCollectionPendingSponsor()\":{\"notice\":\"Whether there is a pending sponsor.\"},\"isOwnerOrAdmin(address)\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"isOwnerOrAdminCross((address,uint256))\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"removeCollectionAdmin(address)\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionAdminCross((address,uint256))\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionSponsor()\":{\"notice\":\"Remove collection sponsor.\"},\"removeFromCollectionAllowList(address)\":{\"notice\":\"Remove the user from the allowed list.\"},\"removeFromCollectionAllowListCross((address,uint256))\":{\"notice\":\"Remove user from allowed list.\"},\"setCollectionAccess(uint8)\":{\"notice\":\"Set the collection access method.\"},\"setCollectionLimit(string,bool)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionLimit(string,uint32)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionMintMode(bool)\":{\"notice\":\"Switch permission for minting.\"},\"setCollectionNesting(bool)\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionNesting(bool,address[])\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionProperties((string,bytes)[])\":{\"notice\":\"Set collection properties.\"},\"setCollectionProperty(string,bytes)\":{\"notice\":\"Set collection property.\"},\"setCollectionSponsor(address)\":{\"notice\":\"Set the sponsor of the collection.\"},\"setCollectionSponsorCross((address,uint256))\":{\"notice\":\"Set the sponsor of the collection.\"},\"setOwnerCross((address,uint256))\":{\"notice\":\"Changes collection owner to another account\"},\"uniqueCollectionType()\":{\"notice\":\"Returns collection type\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"Collection\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "notice": "Add collection admin."
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "notice": "Add collection admin."
+ },
+ "addToCollectionAllowList(address)": {
+ "notice": "Add the user to the allowed list."
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "notice": "Add user to allowed list."
+ },
+ "allowed(address)": {
+ "notice": "Checks that user allowed to operate with collection."
+ },
+ "changeCollectionOwner(address)": {
+ "notice": "Changes collection owner to another account"
+ },
+ "collectionAdmins()": {
+ "notice": "Get collection administrators"
+ },
+ "collectionOwner()": {
+ "notice": "Get collection owner."
+ },
+ "collectionProperties(string[])": {
+ "notice": "Get collection properties."
+ },
+ "collectionProperty(string)": {
+ "notice": "Get collection property."
+ },
+ "collectionSponsor()": {
+ "notice": "Get current sponsor."
+ },
+ "confirmCollectionSponsorship()": {
+ "notice": "Collection sponsorship confirmation."
+ },
+ "contractAddress()": {
+ "notice": "Get contract address."
+ },
+ "deleteCollectionProperties(string[])": {
+ "notice": "Delete collection properties."
+ },
+ "deleteCollectionProperty(string)": {
+ "notice": "Delete collection property."
+ },
+ "hasCollectionPendingSponsor()": {
+ "notice": "Whether there is a pending sponsor."
+ },
+ "isOwnerOrAdmin(address)": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "removeCollectionAdmin(address)": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionSponsor()": {
+ "notice": "Remove collection sponsor."
+ },
+ "removeFromCollectionAllowList(address)": {
+ "notice": "Remove the user from the allowed list."
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "notice": "Remove user from allowed list."
+ },
+ "setCollectionAccess(uint8)": {
+ "notice": "Set the collection access method."
+ },
+ "setCollectionLimit(string,bool)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionLimit(string,uint32)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionMintMode(bool)": {
+ "notice": "Switch permission for minting."
+ },
+ "setCollectionNesting(bool)": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionNesting(bool,address[])": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "notice": "Set collection properties."
+ },
+ "setCollectionProperty(string,bytes)": {
+ "notice": "Set collection property."
+ },
+ "setCollectionSponsor(address)": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setOwnerCross((address,uint256))": {
+ "notice": "Changes collection owner to another account"
+ },
+ "uniqueCollectionType()": {
+ "notice": "Returns collection type"
+ }
+ },
+ "version": 1
+ }
+ },
+ "Dummy": {
+ "abi": [],
+ "devdoc": {
+ "details": "common stubs holder",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"common stubs holder\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"Dummy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC165": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC721": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFromWithData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.mdthe ERC-165 identifier for this interface is 0x58800161",
+ "kind": "dev",
+ "methods": {
+ "approve(address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)"
+ },
+ "balanceOf(address)": {
+ "details": "RFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "An address for whom to query the balance"
+ },
+ "returns": {
+ "_0": "The number of RFTs owned by `owner`, possibly zero"
+ }
+ },
+ "getApproved(uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)"
+ },
+ "isApprovedForAll(address,address)": {
+ "details": "Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)"
+ },
+ "ownerOf(uint256)": {
+ "details": "RFTs assigned to zero address are considered invalid, and queries about them do throw. Returns special 0xffffffffffffffffffffffffffffffffffffffff address for the tokens that are partially owned.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)",
+ "params": {
+ "tokenId": "The identifier for an RFT"
+ },
+ "returns": {
+ "_0": "The address of the owner of the RFT"
+ }
+ },
+ "safeTransferFrom(address,address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "safeTransferFromWithData(address,address,uint256,bytes)": {
+ "details": "Not implementedEVM selector for this function is: 0x60a11672, or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)"
+ },
+ "setApprovalForAll(address,bool)": {
+ "details": "Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ }
+ },
+ "title": "ERC-721 Non-Fungible Token Standard",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "getApproved(uint256)": "081812fc",
+ "isApprovedForAll(address,address)": "e985e9c5",
+ "ownerOf(uint256)": "6352211e",
+ "safeTransferFrom(address,address,uint256)": "42842e0e",
+ "safeTransferFromWithData(address,address,uint256,bytes)": "60a11672",
+ "setApprovalForAll(address,bool)": "a22cb465",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFromWithData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.mdthe ERC-165 identifier for this interface is 0x58800161\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\"},\"balanceOf(address)\":{\"details\":\"RFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of RFTs owned by `owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)\"},\"isApprovedForAll(address,address)\":{\"details\":\"Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)\"},\"ownerOf(uint256)\":{\"details\":\"RFTs assigned to zero address are considered invalid, and queries about them do throw. Returns special 0xffffffffffffffffffffffffffffffffffffffff address for the tokens that are partially owned.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)\",\"params\":{\"tokenId\":\"The identifier for an RFT\"},\"returns\":{\"_0\":\"The address of the owner of the RFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)\"},\"safeTransferFromWithData(address,address,uint256,bytes)\":{\"details\":\"Not implementedEVM selector for this function is: 0x60a11672, or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"balanceOf(address)\":{\"notice\":\"Count all RFTs assigned to an owner\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an RFT\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "balanceOf(address)": {
+ "notice": "Count all RFTs assigned to an owner"
+ },
+ "ownerOf(uint256)": {
+ "notice": "Find the owner of an RFT"
+ },
+ "transferFrom(address,address,uint256)": {
+ "notice": "Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Burnable": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x42966c68",
+ "kind": "dev",
+ "methods": {
+ "burn(uint256)": {
+ "details": "Throws unless `msg.sender` is the current RFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)",
+ "params": {
+ "tokenId": "The RFT to approve"
+ }
+ }
+ },
+ "title": "ERC721 Token that can be irreversibly burned (destroyed).",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "burn(uint256)": "42966c68",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x42966c68\",\"kind\":\"dev\",\"methods\":{\"burn(uint256)\":{\"details\":\"Throws unless `msg.sender` is the current RFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)\",\"params\":{\"tokenId\":\"The RFT to approve\"}}},\"title\":\"ERC721 Token that can be irreversibly burned (destroyed).\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "burn(uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Enumerable": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x780e9d63",
+ "kind": "dev",
+ "methods": {
+ "tokenByIndex(uint256)": {
+ "details": "EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)",
+ "params": {
+ "index": "A counter less than `totalSupply()`"
+ },
+ "returns": {
+ "_0": "The token identifier for the `index`th NFT, (sort order not specified)"
+ }
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "details": "EVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "totalSupply()": {
+ "details": "EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()",
+ "returns": {
+ "_0": "A count of valid RFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"
+ }
+ }
+ },
+ "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "tokenByIndex(uint256)": "4f6ccce7",
+ "tokenOfOwnerByIndex(address,uint256)": "2f745c59",
+ "totalSupply()": "18160ddd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721the ERC-165 identifier for this interface is 0x780e9d63\",\"kind\":\"dev\",\"methods\":{\"tokenByIndex(uint256)\":{\"details\":\"EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)\",\"params\":{\"index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"EVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)\"},\"totalSupply()\":{\"details\":\"EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\",\"returns\":{\"_0\":\"A count of valid RFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid RFTs\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"notice\":\"Not implemented\"},\"totalSupply()\":{\"notice\":\"Count RFTs tracked by this contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "tokenByIndex(uint256)": {
+ "notice": "Enumerate valid RFTs"
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "notice": "Not implemented"
+ },
+ "totalSupply()": {
+ "notice": "Count RFTs tracked by this contract"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721Events": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721Events\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC721Metadata": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x5b5e139f",
+ "kind": "dev",
+ "methods": {
+ "tokenURI(uint256)": {
+ "details": "If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \"\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)",
+ "returns": {
+ "_0": "token's const_metadata"
+ }
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "tokenURI(uint256)": "c87b56dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x5b5e139f\",\"kind\":\"dev\",\"methods\":{\"tokenURI(uint256)\":{\"details\":\"If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \\\"\\\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)\",\"returns\":{\"_0\":\"token's const_metadata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "tokenURI(uint256)": {
+ "notice": "A distinct Uniform Resource Identifier (URI) for a given asset."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueExtensions": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "token",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenContractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "to",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x81feb398",
+ "kind": "dev",
+ "methods": {
+ "burnFrom(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "from": "The current owner of the RFT",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)",
+ "params": {
+ "from": "The current owner of the RFT",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()"
+ },
+ "nextTokenId()": {
+ "details": "EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()"
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()"
+ },
+ "tokenContractAddress(uint256)": {
+ "details": "EVM selector for this function is: 0xab76fac6, or in textual repr: tokenContractAddress(uint256)",
+ "params": {
+ "token": "ID of the token"
+ }
+ },
+ "transfer(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The RFT to transfer"
+ }
+ }
+ },
+ "title": "Unique extensions for ERC721.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "burnFrom(address,uint256)": "79cc6790",
+ "burnFromCross((address,uint256),uint256)": "bb2f5a58",
+ "name()": "06fdde03",
+ "nextTokenId()": "75794a3c",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "tokenContractAddress(uint256)": "ab76fac6",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFromCross((address,uint256),(address,uint256),uint256)": "d5cf430b"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"}],\"name\":\"tokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x81feb398\",\"kind\":\"dev\",\"methods\":{\"burnFrom(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"from\":\"The current owner of the RFT\",\"tokenId\":\"The RFT to transfer\"}},\"burnFromCross((address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)\",\"params\":{\"from\":\"The current owner of the RFT\",\"tokenId\":\"The RFT to transfer\"}},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\"},\"nextTokenId()\":{\"details\":\"EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()\"},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\"},\"tokenContractAddress(uint256)\":{\"details\":\"EVM selector for this function is: 0xab76fac6, or in textual repr: tokenContractAddress(uint256)\",\"params\":{\"token\":\"ID of the token\"}},\"transfer(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The RFT to transfer\"}},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The RFT to transfer\"}}},\"title\":\"Unique extensions for ERC721.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burnFrom(address,uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFromCross((address,uint256),uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"nextTokenId()\":{\"notice\":\"Returns next free RFT ID.\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenContractAddress(uint256)\":{\"notice\":\"Returns EVM address for refungible token\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer ownership of an RFT\"},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"notice\":\"Transfer ownership of an RFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721UniqueExtensions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "burnFrom(address,uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "name()": {
+ "notice": "A descriptive name for a collection of NFTs in this contract"
+ },
+ "nextTokenId()": {
+ "notice": "Returns next free RFT ID."
+ },
+ "symbol()": {
+ "notice": "An abbreviated name for NFTs in this contract"
+ },
+ "tokenContractAddress(uint256)": {
+ "notice": "Returns EVM address for refungible token"
+ },
+ "transfer(address,uint256)": {
+ "notice": "Transfer ownership of an RFT"
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "notice": "Transfer ownership of an RFT"
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueMintable": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenUri",
+ "type": "string"
+ }
+ ],
+ "name": "mintWithTokenURI",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFinished",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x476ff149",
+ "kind": "dev",
+ "methods": {
+ "finishMinting()": {
+ "details": "Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()"
+ },
+ "mint(address)": {
+ "details": "EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)",
+ "params": {
+ "to": "The new owner"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintWithTokenURI(address,string)": {
+ "details": "EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)",
+ "params": {
+ "to": "The new owner",
+ "tokenUri": "Token URI that would be stored in the NFT properties"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintingFinished()": {
+ "details": "EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()"
+ }
+ },
+ "title": "ERC721 minting logic.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "finishMinting()": "7d64bcb4",
+ "mint(address)": "6a627842",
+ "mintWithTokenURI(address,string)": "45c17782",
+ "mintingFinished()": "05d2035b",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"finishMinting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintingFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x476ff149\",\"kind\":\"dev\",\"methods\":{\"finishMinting()\":{\"details\":\"Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()\"},\"mint(address)\":{\"details\":\"EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)\",\"params\":{\"to\":\"The new owner\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintWithTokenURI(address,string)\":{\"details\":\"EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)\",\"params\":{\"to\":\"The new owner\",\"tokenUri\":\"Token URI that would be stored in the NFT properties\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintingFinished()\":{\"details\":\"EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()\"}},\"title\":\"ERC721 minting logic.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mint(address)\":{\"notice\":\"Function to mint token.\"},\"mintWithTokenURI(address,string)\":{\"notice\":\"Function to mint token with the given tokenUri.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721UniqueMintable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "mint(address)": {
+ "notice": "Function to mint token."
+ },
+ "mintWithTokenURI(address,string)": {
+ "notice": "Function to mint token with the given tokenUri."
+ }
+ },
+ "version": 1
+ }
+ },
+ "ERC721UniqueMintableEvents": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"ERC721UniqueMintableEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "TokenProperties": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "property",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "isMutable",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "collectionAdmin",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "tokenOwner",
+ "type": "bool"
+ }
+ ],
+ "name": "setTokenPropertyPermission",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x55dba919",
+ "kind": "dev",
+ "methods": {
+ "deleteProperty(uint256,string)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ }
+ },
+ "property(uint256,string)": {
+ "details": "Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ },
+ "returns": {
+ "_0": "Property value bytes"
+ }
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])",
+ "params": {
+ "properties": "settable properties",
+ "tokenId": "ID of the token."
+ }
+ },
+ "setProperty(uint256,string,bytes)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token.",
+ "value": "Property value."
+ }
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "details": "Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)",
+ "params": {
+ "collectionAdmin": "Permission to mutate property by collection admin if property is mutable.",
+ "isMutable": "Permission to mutate property.",
+ "key": "Property key.",
+ "tokenOwner": "Permission to mutate property by token owner if property is mutable."
+ }
+ }
+ },
+ "title": "A contract that allows to set and delete token properties and change token property permissions.",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "deleteProperty(uint256,string)": "066111d1",
+ "property(uint256,string)": "7228c327",
+ "setProperties(uint256,(string,bytes)[])": "14ed3a6e",
+ "setProperty(uint256,string,bytes)": "1752d67b",
+ "setTokenPropertyPermission(string,bool,bool,bool)": "222d97fa",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"property\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"collectionAdmin\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"tokenOwner\",\"type\":\"bool\"}],\"name\":\"setTokenPropertyPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x55dba919\",\"kind\":\"dev\",\"methods\":{\"deleteProperty(uint256,string)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"}},\"property(uint256,string)\":{\"details\":\"Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"},\"returns\":{\"_0\":\"Property value bytes\"}},\"setProperties(uint256,(string,bytes)[])\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])\",\"params\":{\"properties\":\"settable properties\",\"tokenId\":\"ID of the token.\"}},\"setProperty(uint256,string,bytes)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\",\"value\":\"Property value.\"}},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"details\":\"Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)\",\"params\":{\"collectionAdmin\":\"Permission to mutate property by collection admin if property is mutable.\",\"isMutable\":\"Permission to mutate property.\",\"key\":\"Property key.\",\"tokenOwner\":\"Permission to mutate property by token owner if property is mutable.\"}}},\"title\":\"A contract that allows to set and delete token properties and change token property permissions.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deleteProperty(uint256,string)\":{\"notice\":\"Delete token property value.\"},\"property(uint256,string)\":{\"notice\":\"Get token property value.\"},\"setProperties(uint256,(string,bytes)[])\":{\"notice\":\"Set token properties value.\"},\"setProperty(uint256,string,bytes)\":{\"notice\":\"Set token property value.\"},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"notice\":\"Set permissions for token property.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"TokenProperties\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "deleteProperty(uint256,string)": {
+ "notice": "Delete token property value."
+ },
+ "property(uint256,string)": {
+ "notice": "Get token property value."
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "notice": "Set token properties value."
+ },
+ "setProperty(uint256,string,bytes)": {
+ "notice": "Set token property value."
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "notice": "Set permissions for token property."
+ }
+ },
+ "version": 1
+ }
+ },
+ "UniqueRefungible": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newAdmin",
+ "type": "tuple"
+ }
+ ],
+ "name": "addCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "addToCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "addToCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "allowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "changeCollectionOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionAdmins",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionOwner",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "collectionProperties",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "collectionProperty",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "collectionSponsor",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "field_0",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "field_1",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct Tuple23",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "confirmCollectionSponsorship",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string[]",
+ "name": "keys",
+ "type": "string[]"
+ }
+ ],
+ "name": "deleteCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "deleteProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "hasCollectionPendingSponsor",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isOwnerOrAdmin",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "isOwnerOrAdminCross",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenUri",
+ "type": "string"
+ }
+ ],
+ "name": "mintWithTokenURI",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintingFinished",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ }
+ ],
+ "name": "property",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "admin",
+ "type": "address"
+ }
+ ],
+ "name": "removeCollectionAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "admin",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeCollectionAdminCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "removeCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromCollectionAllowList",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "user",
+ "type": "tuple"
+ }
+ ],
+ "name": "removeFromCollectionAllowListCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFromWithData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "mode",
+ "type": "uint8"
+ }
+ ],
+ "name": "setCollectionAccess",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "uint32",
+ "name": "value",
+ "type": "uint32"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "limit",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "value",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionLimit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "mode",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionMintMode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "internalType": "address[]",
+ "name": "collections",
+ "type": "address[]"
+ }
+ ],
+ "name": "setCollectionNesting",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setCollectionProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setCollectionProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sponsor",
+ "type": "address"
+ }
+ ],
+ "name": "setCollectionSponsor",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "sponsor",
+ "type": "tuple"
+ }
+ ],
+ "name": "setCollectionSponsorCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "newOwner",
+ "type": "tuple"
+ }
+ ],
+ "name": "setOwnerCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple20[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "setProperties",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "name": "setProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bool",
+ "name": "isMutable",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "collectionAdmin",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "tokenOwner",
+ "type": "bool"
+ }
+ ],
+ "name": "setTokenPropertyPermission",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "token",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenContractAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "from",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "eth",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "sub",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct EthCrossAccount",
+ "name": "to",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFromCross",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "uniqueCollectionType",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)",
+ "params": {
+ "newAdmin": "Address of the added administrator."
+ }
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))",
+ "params": {
+ "newAdmin": "Cross account administrator address."
+ }
+ },
+ "addToCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a trusted user."
+ }
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "allowed(address)": {
+ "details": "EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)",
+ "params": {
+ "user": "User address to check."
+ }
+ },
+ "approve(address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)"
+ },
+ "balanceOf(address)": {
+ "details": "RFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "An address for whom to query the balance"
+ },
+ "returns": {
+ "_0": "The number of RFTs owned by `owner`, possibly zero"
+ }
+ },
+ "burn(uint256)": {
+ "details": "Throws unless `msg.sender` is the current RFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)",
+ "params": {
+ "tokenId": "The RFT to approve"
+ }
+ },
+ "burnFrom(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "from": "The current owner of the RFT",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)",
+ "params": {
+ "from": "The current owner of the RFT",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "changeCollectionOwner(address)": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)",
+ "params": {
+ "newOwner": "new owner account"
+ }
+ },
+ "collectionAdmins()": {
+ "details": "EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()",
+ "returns": {
+ "_0": "Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionOwner()": {
+ "details": "EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa."
+ }
+ },
+ "collectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys. Empty keys for all propertyes."
+ },
+ "returns": {
+ "_0": "Vector of properties key/value pairs."
+ }
+ },
+ "collectionProperty(string)": {
+ "details": "Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ },
+ "returns": {
+ "_0": "bytes The property corresponding to the key."
+ }
+ },
+ "collectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()",
+ "returns": {
+ "_0": "Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw."
+ }
+ },
+ "confirmCollectionSponsorship()": {
+ "details": "After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()"
+ },
+ "contractAddress()": {
+ "details": "EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()"
+ },
+ "deleteCollectionProperties(string[])": {
+ "details": "EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])",
+ "params": {
+ "keys": "Properties keys."
+ }
+ },
+ "deleteCollectionProperty(string)": {
+ "details": "EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)",
+ "params": {
+ "key": "Property key."
+ }
+ },
+ "deleteProperty(uint256,string)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ }
+ },
+ "finishMinting()": {
+ "details": "Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()"
+ },
+ "getApproved(uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)"
+ },
+ "hasCollectionPendingSponsor()": {
+ "details": "EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "isApprovedForAll(address,address)": {
+ "details": "Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)"
+ },
+ "isOwnerOrAdmin(address)": {
+ "details": "EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)",
+ "params": {
+ "user": "account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))",
+ "params": {
+ "user": "User cross account to verify"
+ },
+ "returns": {
+ "_0": "\"true\" if account is the owner or admin"
+ }
+ },
+ "mint(address)": {
+ "details": "EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)",
+ "params": {
+ "to": "The new owner"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintWithTokenURI(address,string)": {
+ "details": "EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)",
+ "params": {
+ "to": "The new owner",
+ "tokenUri": "Token URI that would be stored in the NFT properties"
+ },
+ "returns": {
+ "_0": "uint256 The id of the newly minted token"
+ }
+ },
+ "mintingFinished()": {
+ "details": "EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()"
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()"
+ },
+ "nextTokenId()": {
+ "details": "EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()"
+ },
+ "ownerOf(uint256)": {
+ "details": "RFTs assigned to zero address are considered invalid, and queries about them do throw. Returns special 0xffffffffffffffffffffffffffffffffffffffff address for the tokens that are partially owned.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)",
+ "params": {
+ "tokenId": "The identifier for an RFT"
+ },
+ "returns": {
+ "_0": "The address of the owner of the RFT"
+ }
+ },
+ "property(uint256,string)": {
+ "details": "Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token."
+ },
+ "returns": {
+ "_0": "Property value bytes"
+ }
+ },
+ "removeCollectionAdmin(address)": {
+ "details": "EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)",
+ "params": {
+ "admin": "Address of the removed administrator."
+ }
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))",
+ "params": {
+ "admin": "Cross account administrator address."
+ }
+ },
+ "removeCollectionSponsor()": {
+ "details": "EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()"
+ },
+ "removeFromCollectionAllowList(address)": {
+ "details": "EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)",
+ "params": {
+ "user": "Address of a removed user."
+ }
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "details": "EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))",
+ "params": {
+ "user": "User cross account address."
+ }
+ },
+ "safeTransferFrom(address,address,uint256)": {
+ "details": "Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "safeTransferFromWithData(address,address,uint256,bytes)": {
+ "details": "Not implementedEVM selector for this function is: 0x60a11672, or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)"
+ },
+ "setApprovalForAll(address,bool)": {
+ "details": "Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "setCollectionAccess(uint8)": {
+ "details": "EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)",
+ "params": {
+ "mode": "Access mode \t0 for Normal \t1 for AllowList"
+ }
+ },
+ "setCollectionLimit(string,bool)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"ownerCanTransfer\", \t\"ownerCanDestroy\", \t\"transfersEnabled\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionLimit(string,uint32)": {
+ "details": "Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)",
+ "params": {
+ "limit": "Name of the limit. Valid names: \t\"accountTokenOwnershipLimit\", \t\"sponsoredDataSize\", \t\"sponsoredDataRateLimit\", \t\"tokenLimit\", \t\"sponsorTransferTimeout\", \t\"sponsorApproveTimeout\"",
+ "value": "Value of the limit."
+ }
+ },
+ "setCollectionMintMode(bool)": {
+ "details": "EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)",
+ "params": {
+ "mode": "Enable if \"true\"."
+ }
+ },
+ "setCollectionNesting(bool)": {
+ "details": "EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)",
+ "params": {
+ "enable": "If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionNesting(bool,address[])": {
+ "details": "EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])",
+ "params": {
+ "collections": "Addresses of collections that will be available for nesting.",
+ "enable": "If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'"
+ }
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "details": "EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])",
+ "params": {
+ "properties": "Vector of properties key/value pair."
+ }
+ },
+ "setCollectionProperty(string,bytes)": {
+ "details": "EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "value": "Propery value."
+ }
+ },
+ "setCollectionSponsor(address)": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)",
+ "params": {
+ "sponsor": "Address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "details": "In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))",
+ "params": {
+ "sponsor": "Cross account address of the sponsor from whose account funds will be debited for operations with the contract."
+ }
+ },
+ "setOwnerCross((address,uint256))": {
+ "details": "Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))",
+ "params": {
+ "newOwner": "new owner cross account"
+ }
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])",
+ "params": {
+ "properties": "settable properties",
+ "tokenId": "ID of the token."
+ }
+ },
+ "setProperty(uint256,string,bytes)": {
+ "details": "Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)",
+ "params": {
+ "key": "Property key.",
+ "tokenId": "ID of the token.",
+ "value": "Property value."
+ }
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "details": "Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)",
+ "params": {
+ "collectionAdmin": "Permission to mutate property by collection admin if property is mutable.",
+ "isMutable": "Permission to mutate property.",
+ "key": "Property key.",
+ "tokenOwner": "Permission to mutate property by token owner if property is mutable."
+ }
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()"
+ },
+ "tokenByIndex(uint256)": {
+ "details": "EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)",
+ "params": {
+ "index": "A counter less than `totalSupply()`"
+ },
+ "returns": {
+ "_0": "The token identifier for the `index`th NFT, (sort order not specified)"
+ }
+ },
+ "tokenContractAddress(uint256)": {
+ "details": "EVM selector for this function is: 0xab76fac6, or in textual repr: tokenContractAddress(uint256)",
+ "params": {
+ "token": "ID of the token"
+ }
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "details": "EVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "tokenURI(uint256)": {
+ "details": "If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \"\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)",
+ "returns": {
+ "_0": "token's const_metadata"
+ }
+ },
+ "totalSupply()": {
+ "details": "EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()",
+ "returns": {
+ "_0": "A count of valid RFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"
+ }
+ },
+ "transfer(address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "from": "The current owner of the NFT",
+ "to": "The new owner",
+ "tokenId": "The NFT to transfer"
+ }
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "details": "Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)",
+ "params": {
+ "to": "The new owner",
+ "tokenId": "The RFT to transfer"
+ }
+ },
+ "uniqueCollectionType()": {
+ "details": "EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()",
+ "returns": {
+ "_0": "`Fungible` or `NFT` or `ReFungible`"
+ }
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "addCollectionAdmin(address)": "92e462c7",
+ "addCollectionAdminCross((address,uint256))": "859aa7d6",
+ "addToCollectionAllowList(address)": "67844fe6",
+ "addToCollectionAllowListCross((address,uint256))": "a0184a3a",
+ "allowed(address)": "d63a8e11",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "burn(uint256)": "42966c68",
+ "burnFrom(address,uint256)": "79cc6790",
+ "burnFromCross((address,uint256),uint256)": "bb2f5a58",
+ "changeCollectionOwner(address)": "4f53e226",
+ "collectionAdmins()": "5813216b",
+ "collectionOwner()": "df727d3b",
+ "collectionProperties(string[])": "285fb8e6",
+ "collectionProperty(string)": "cf24fd6d",
+ "collectionSponsor()": "6ec0a9f1",
+ "confirmCollectionSponsorship()": "3c50e97a",
+ "contractAddress()": "f6b4dfb4",
+ "deleteCollectionProperties(string[])": "ee206ee3",
+ "deleteCollectionProperty(string)": "7b7debce",
+ "deleteProperty(uint256,string)": "066111d1",
+ "finishMinting()": "7d64bcb4",
+ "getApproved(uint256)": "081812fc",
+ "hasCollectionPendingSponsor()": "058ac185",
+ "isApprovedForAll(address,address)": "e985e9c5",
+ "isOwnerOrAdmin(address)": "9811b0c7",
+ "isOwnerOrAdminCross((address,uint256))": "3e75a905",
+ "mint(address)": "6a627842",
+ "mintWithTokenURI(address,string)": "45c17782",
+ "mintingFinished()": "05d2035b",
+ "name()": "06fdde03",
+ "nextTokenId()": "75794a3c",
+ "ownerOf(uint256)": "6352211e",
+ "property(uint256,string)": "7228c327",
+ "removeCollectionAdmin(address)": "fafd7b42",
+ "removeCollectionAdminCross((address,uint256))": "6c0cd173",
+ "removeCollectionSponsor()": "6e0326a3",
+ "removeFromCollectionAllowList(address)": "85c51acb",
+ "removeFromCollectionAllowListCross((address,uint256))": "09ba452a",
+ "safeTransferFrom(address,address,uint256)": "42842e0e",
+ "safeTransferFromWithData(address,address,uint256,bytes)": "60a11672",
+ "setApprovalForAll(address,bool)": "a22cb465",
+ "setCollectionAccess(uint8)": "41835d4c",
+ "setCollectionLimit(string,bool)": "993b7fba",
+ "setCollectionLimit(string,uint32)": "6a3841db",
+ "setCollectionMintMode(bool)": "00018e84",
+ "setCollectionNesting(bool)": "112d4586",
+ "setCollectionNesting(bool,address[])": "64872396",
+ "setCollectionProperties((string,bytes)[])": "50b26b2a",
+ "setCollectionProperty(string,bytes)": "2f073f66",
+ "setCollectionSponsor(address)": "7623402e",
+ "setCollectionSponsorCross((address,uint256))": "84a1d5a8",
+ "setOwnerCross((address,uint256))": "e5c9913f",
+ "setProperties(uint256,(string,bytes)[])": "14ed3a6e",
+ "setProperty(uint256,string,bytes)": "1752d67b",
+ "setTokenPropertyPermission(string,bool,bool,bool)": "222d97fa",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "tokenByIndex(uint256)": "4f6ccce7",
+ "tokenContractAddress(uint256)": "ab76fac6",
+ "tokenOfOwnerByIndex(address,uint256)": "2f745c59",
+ "tokenURI(uint256)": "c87b56dd",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd",
+ "transferFromCross((address,uint256),(address,uint256),uint256)": "d5cf430b",
+ "uniqueCollectionType()": "d34b55b8"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintingFinished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newAdmin\",\"type\":\"tuple\"}],\"name\":\"addCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addToCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"addToCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"allowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burnFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"changeCollectionOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionAdmins\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"collectionProperties\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"collectionProperty\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionSponsor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"field_0\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"field_1\",\"type\":\"uint256\"}],\"internalType\":\"struct Tuple23\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmCollectionSponsorship\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"name\":\"deleteCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"deleteProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishMinting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasCollectionPendingSponsor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwnerOrAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"isOwnerOrAdminCross\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintingFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"property\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeCollectionAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"admin\",\"type\":\"tuple\"}],\"name\":\"removeCollectionAdminCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeFromCollectionAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"removeFromCollectionAllowListCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFromWithData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"setCollectionAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"value\",\"type\":\"uint32\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"limit\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setCollectionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"mode\",\"type\":\"bool\"}],\"name\":\"setCollectionMintMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"collections\",\"type\":\"address[]\"}],\"name\":\"setCollectionNesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setCollectionProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setCollectionProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sponsor\",\"type\":\"address\"}],\"name\":\"setCollectionSponsor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"sponsor\",\"type\":\"tuple\"}],\"name\":\"setCollectionSponsorCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"newOwner\",\"type\":\"tuple\"}],\"name\":\"setOwnerCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple20[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"setProperties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isMutable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"collectionAdmin\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"tokenOwner\",\"type\":\"bool\"}],\"name\":\"setTokenPropertyPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"}],\"name\":\"tokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"eth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sub\",\"type\":\"uint256\"}],\"internalType\":\"struct EthCrossAccount\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFromCross\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniqueCollectionType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x92e462c7, or in textual repr: addCollectionAdmin(address)\",\"params\":{\"newAdmin\":\"Address of the added administrator.\"}},\"addCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x859aa7d6, or in textual repr: addCollectionAdminCross((address,uint256))\",\"params\":{\"newAdmin\":\"Cross account administrator address.\"}},\"addToCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x67844fe6, or in textual repr: addToCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a trusted user.\"}},\"addToCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0xa0184a3a, or in textual repr: addToCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"allowed(address)\":{\"details\":\"EVM selector for this function is: 0xd63a8e11, or in textual repr: allowed(address)\",\"params\":{\"user\":\"User address to check.\"}},\"approve(address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\"},\"balanceOf(address)\":{\"details\":\"RFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of RFTs owned by `owner`, possibly zero\"}},\"burn(uint256)\":{\"details\":\"Throws unless `msg.sender` is the current RFT owner, or an authorized operator of the current owner.EVM selector for this function is: 0x42966c68, or in textual repr: burn(uint256)\",\"params\":{\"tokenId\":\"The RFT to approve\"}},\"burnFrom(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"from\":\"The current owner of the RFT\",\"tokenId\":\"The RFT to transfer\"}},\"burnFromCross((address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xbb2f5a58, or in textual repr: burnFromCross((address,uint256),uint256)\",\"params\":{\"from\":\"The current owner of the RFT\",\"tokenId\":\"The RFT to transfer\"}},\"changeCollectionOwner(address)\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0x4f53e226, or in textual repr: changeCollectionOwner(address)\",\"params\":{\"newOwner\":\"new owner account\"}},\"collectionAdmins()\":{\"details\":\"EVM selector for this function is: 0x5813216b, or in textual repr: collectionAdmins()\",\"returns\":{\"_0\":\"Vector of tuples with admins address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionOwner()\":{\"details\":\"EVM selector for this function is: 0xdf727d3b, or in textual repr: collectionOwner()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If address is canonical then substrate mirror is zero and vice versa.\"}},\"collectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0x285fb8e6, or in textual repr: collectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys. Empty keys for all propertyes.\"},\"returns\":{\"_0\":\"Vector of properties key/value pairs.\"}},\"collectionProperty(string)\":{\"details\":\"Throws error if key not found.EVM selector for this function is: 0xcf24fd6d, or in textual repr: collectionProperty(string)\",\"params\":{\"key\":\"Property key.\"},\"returns\":{\"_0\":\"bytes The property corresponding to the key.\"}},\"collectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6ec0a9f1, or in textual repr: collectionSponsor()\",\"returns\":{\"_0\":\"Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \\\"Contract has no sponsor\\\" throw.\"}},\"confirmCollectionSponsorship()\":{\"details\":\"After setting the sponsor for the collection, it must be confirmed with this function.EVM selector for this function is: 0x3c50e97a, or in textual repr: confirmCollectionSponsorship()\"},\"contractAddress()\":{\"details\":\"EVM selector for this function is: 0xf6b4dfb4, or in textual repr: contractAddress()\"},\"deleteCollectionProperties(string[])\":{\"details\":\"EVM selector for this function is: 0xee206ee3, or in textual repr: deleteCollectionProperties(string[])\",\"params\":{\"keys\":\"Properties keys.\"}},\"deleteCollectionProperty(string)\":{\"details\":\"EVM selector for this function is: 0x7b7debce, or in textual repr: deleteCollectionProperty(string)\",\"params\":{\"key\":\"Property key.\"}},\"deleteProperty(uint256,string)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x066111d1, or in textual repr: deleteProperty(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"}},\"finishMinting()\":{\"details\":\"Not implementedEVM selector for this function is: 0x7d64bcb4, or in textual repr: finishMinting()\"},\"getApproved(uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x081812fc, or in textual repr: getApproved(uint256)\"},\"hasCollectionPendingSponsor()\":{\"details\":\"EVM selector for this function is: 0x058ac185, or in textual repr: hasCollectionPendingSponsor()\"},\"isApprovedForAll(address,address)\":{\"details\":\"Not implementedEVM selector for this function is: 0xe985e9c5, or in textual repr: isApprovedForAll(address,address)\"},\"isOwnerOrAdmin(address)\":{\"details\":\"EVM selector for this function is: 0x9811b0c7, or in textual repr: isOwnerOrAdmin(address)\",\"params\":{\"user\":\"account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"isOwnerOrAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x3e75a905, or in textual repr: isOwnerOrAdminCross((address,uint256))\",\"params\":{\"user\":\"User cross account to verify\"},\"returns\":{\"_0\":\"\\\"true\\\" if account is the owner or admin\"}},\"mint(address)\":{\"details\":\"EVM selector for this function is: 0x6a627842, or in textual repr: mint(address)\",\"params\":{\"to\":\"The new owner\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintWithTokenURI(address,string)\":{\"details\":\"EVM selector for this function is: 0x45c17782, or in textual repr: mintWithTokenURI(address,string)\",\"params\":{\"to\":\"The new owner\",\"tokenUri\":\"Token URI that would be stored in the NFT properties\"},\"returns\":{\"_0\":\"uint256 The id of the newly minted token\"}},\"mintingFinished()\":{\"details\":\"EVM selector for this function is: 0x05d2035b, or in textual repr: mintingFinished()\"},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\"},\"nextTokenId()\":{\"details\":\"EVM selector for this function is: 0x75794a3c, or in textual repr: nextTokenId()\"},\"ownerOf(uint256)\":{\"details\":\"RFTs assigned to zero address are considered invalid, and queries about them do throw. Returns special 0xffffffffffffffffffffffffffffffffffffffff address for the tokens that are partially owned.EVM selector for this function is: 0x6352211e, or in textual repr: ownerOf(uint256)\",\"params\":{\"tokenId\":\"The identifier for an RFT\"},\"returns\":{\"_0\":\"The address of the owner of the RFT\"}},\"property(uint256,string)\":{\"details\":\"Throws error if key not foundEVM selector for this function is: 0x7228c327, or in textual repr: property(uint256,string)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\"},\"returns\":{\"_0\":\"Property value bytes\"}},\"removeCollectionAdmin(address)\":{\"details\":\"EVM selector for this function is: 0xfafd7b42, or in textual repr: removeCollectionAdmin(address)\",\"params\":{\"admin\":\"Address of the removed administrator.\"}},\"removeCollectionAdminCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x6c0cd173, or in textual repr: removeCollectionAdminCross((address,uint256))\",\"params\":{\"admin\":\"Cross account administrator address.\"}},\"removeCollectionSponsor()\":{\"details\":\"EVM selector for this function is: 0x6e0326a3, or in textual repr: removeCollectionSponsor()\"},\"removeFromCollectionAllowList(address)\":{\"details\":\"EVM selector for this function is: 0x85c51acb, or in textual repr: removeFromCollectionAllowList(address)\",\"params\":{\"user\":\"Address of a removed user.\"}},\"removeFromCollectionAllowListCross((address,uint256))\":{\"details\":\"EVM selector for this function is: 0x09ba452a, or in textual repr: removeFromCollectionAllowListCross((address,uint256))\",\"params\":{\"user\":\"User cross account address.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Not implementedEVM selector for this function is: 0x42842e0e, or in textual repr: safeTransferFrom(address,address,uint256)\"},\"safeTransferFromWithData(address,address,uint256,bytes)\":{\"details\":\"Not implementedEVM selector for this function is: 0x60a11672, or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Not implementedEVM selector for this function is: 0xa22cb465, or in textual repr: setApprovalForAll(address,bool)\"},\"setCollectionAccess(uint8)\":{\"details\":\"EVM selector for this function is: 0x41835d4c, or in textual repr: setCollectionAccess(uint8)\",\"params\":{\"mode\":\"Access mode \\t0 for Normal \\t1 for AllowList\"}},\"setCollectionLimit(string,bool)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x993b7fba, or in textual repr: setCollectionLimit(string,bool)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"ownerCanTransfer\\\", \\t\\\"ownerCanDestroy\\\", \\t\\\"transfersEnabled\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionLimit(string,uint32)\":{\"details\":\"Throws error if limit not found.EVM selector for this function is: 0x6a3841db, or in textual repr: setCollectionLimit(string,uint32)\",\"params\":{\"limit\":\"Name of the limit. Valid names: \\t\\\"accountTokenOwnershipLimit\\\", \\t\\\"sponsoredDataSize\\\", \\t\\\"sponsoredDataRateLimit\\\", \\t\\\"tokenLimit\\\", \\t\\\"sponsorTransferTimeout\\\", \\t\\\"sponsorApproveTimeout\\\"\",\"value\":\"Value of the limit.\"}},\"setCollectionMintMode(bool)\":{\"details\":\"EVM selector for this function is: 0x00018e84, or in textual repr: setCollectionMintMode(bool)\",\"params\":{\"mode\":\"Enable if \\\"true\\\".\"}},\"setCollectionNesting(bool)\":{\"details\":\"EVM selector for this function is: 0x112d4586, or in textual repr: setCollectionNesting(bool)\",\"params\":{\"enable\":\"If \\\"true\\\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\"}},\"setCollectionNesting(bool,address[])\":{\"details\":\"EVM selector for this function is: 0x64872396, or in textual repr: setCollectionNesting(bool,address[])\",\"params\":{\"collections\":\"Addresses of collections that will be available for nesting.\",\"enable\":\"If \\\"true\\\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\"}},\"setCollectionProperties((string,bytes)[])\":{\"details\":\"EVM selector for this function is: 0x50b26b2a, or in textual repr: setCollectionProperties((string,bytes)[])\",\"params\":{\"properties\":\"Vector of properties key/value pair.\"}},\"setCollectionProperty(string,bytes)\":{\"details\":\"EVM selector for this function is: 0x2f073f66, or in textual repr: setCollectionProperty(string,bytes)\",\"params\":{\"key\":\"Property key.\",\"value\":\"Propery value.\"}},\"setCollectionSponsor(address)\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x7623402e, or in textual repr: setCollectionSponsor(address)\",\"params\":{\"sponsor\":\"Address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setCollectionSponsorCross((address,uint256))\":{\"details\":\"In order for sponsorship to work, it must be confirmed on behalf of the sponsor.EVM selector for this function is: 0x84a1d5a8, or in textual repr: setCollectionSponsorCross((address,uint256))\",\"params\":{\"sponsor\":\"Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\"}},\"setOwnerCross((address,uint256))\":{\"details\":\"Owner can be changed only by current ownerEVM selector for this function is: 0xe5c9913f, or in textual repr: setOwnerCross((address,uint256))\",\"params\":{\"newOwner\":\"new owner cross account\"}},\"setProperties(uint256,(string,bytes)[])\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x14ed3a6e, or in textual repr: setProperties(uint256,(string,bytes)[])\",\"params\":{\"properties\":\"settable properties\",\"tokenId\":\"ID of the token.\"}},\"setProperty(uint256,string,bytes)\":{\"details\":\"Throws error if `msg.sender` has no permission to edit the property.EVM selector for this function is: 0x1752d67b, or in textual repr: setProperty(uint256,string,bytes)\",\"params\":{\"key\":\"Property key.\",\"tokenId\":\"ID of the token.\",\"value\":\"Property value.\"}},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"details\":\"Throws error if `msg.sender` is not admin or owner of the collection.EVM selector for this function is: 0x222d97fa, or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)\",\"params\":{\"collectionAdmin\":\"Permission to mutate property by collection admin if property is mutable.\",\"isMutable\":\"Permission to mutate property.\",\"key\":\"Property key.\",\"tokenOwner\":\"Permission to mutate property by token owner if property is mutable.\"}},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\"},\"tokenByIndex(uint256)\":{\"details\":\"EVM selector for this function is: 0x4f6ccce7, or in textual repr: tokenByIndex(uint256)\",\"params\":{\"index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `index`th NFT, (sort order not specified)\"}},\"tokenContractAddress(uint256)\":{\"details\":\"EVM selector for this function is: 0xab76fac6, or in textual repr: tokenContractAddress(uint256)\",\"params\":{\"token\":\"ID of the token\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"EVM selector for this function is: 0x2f745c59, or in textual repr: tokenOfOwnerByIndex(address,uint256)\"},\"tokenURI(uint256)\":{\"details\":\"If the token has a `url` property and it is not empty, it is returned. Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`. If the collection property `baseURI` is empty or absent, return \\\"\\\" (empty string) otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).EVM selector for this function is: 0xc87b56dd, or in textual repr: tokenURI(uint256)\",\"returns\":{\"_0\":\"token's const_metadata\"}},\"totalSupply()\":{\"details\":\"EVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\",\"returns\":{\"_0\":\"A count of valid RFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}},\"transfer(address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The RFT to transfer\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner or an authorized operator for this RFT. Throws if `from` is not the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"from\":\"The current owner of the NFT\",\"to\":\"The new owner\",\"tokenId\":\"The NFT to transfer\"}},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner. Throws if `to` is the zero address. Throws if `tokenId` is not a valid RFT. Throws if RFT pieces have multiple owners.EVM selector for this function is: 0xd5cf430b, or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)\",\"params\":{\"to\":\"The new owner\",\"tokenId\":\"The RFT to transfer\"}},\"uniqueCollectionType()\":{\"details\":\"EVM selector for this function is: 0xd34b55b8, or in textual repr: uniqueCollectionType()\",\"returns\":{\"_0\":\"`Fungible` or `NFT` or `ReFungible`\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCollectionAdmin(address)\":{\"notice\":\"Add collection admin.\"},\"addCollectionAdminCross((address,uint256))\":{\"notice\":\"Add collection admin.\"},\"addToCollectionAllowList(address)\":{\"notice\":\"Add the user to the allowed list.\"},\"addToCollectionAllowListCross((address,uint256))\":{\"notice\":\"Add user to allowed list.\"},\"allowed(address)\":{\"notice\":\"Checks that user allowed to operate with collection.\"},\"balanceOf(address)\":{\"notice\":\"Count all RFTs assigned to an owner\"},\"burn(uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFrom(address,uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"burnFromCross((address,uint256),uint256)\":{\"notice\":\"Burns a specific ERC721 token.\"},\"changeCollectionOwner(address)\":{\"notice\":\"Changes collection owner to another account\"},\"collectionAdmins()\":{\"notice\":\"Get collection administrators\"},\"collectionOwner()\":{\"notice\":\"Get collection owner.\"},\"collectionProperties(string[])\":{\"notice\":\"Get collection properties.\"},\"collectionProperty(string)\":{\"notice\":\"Get collection property.\"},\"collectionSponsor()\":{\"notice\":\"Get current sponsor.\"},\"confirmCollectionSponsorship()\":{\"notice\":\"Collection sponsorship confirmation.\"},\"contractAddress()\":{\"notice\":\"Get contract address.\"},\"deleteCollectionProperties(string[])\":{\"notice\":\"Delete collection properties.\"},\"deleteCollectionProperty(string)\":{\"notice\":\"Delete collection property.\"},\"deleteProperty(uint256,string)\":{\"notice\":\"Delete token property value.\"},\"hasCollectionPendingSponsor()\":{\"notice\":\"Whether there is a pending sponsor.\"},\"isOwnerOrAdmin(address)\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"isOwnerOrAdminCross((address,uint256))\":{\"notice\":\"Check that account is the owner or admin of the collection\"},\"mint(address)\":{\"notice\":\"Function to mint token.\"},\"mintWithTokenURI(address,string)\":{\"notice\":\"Function to mint token with the given tokenUri.\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"nextTokenId()\":{\"notice\":\"Returns next free RFT ID.\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an RFT\"},\"property(uint256,string)\":{\"notice\":\"Get token property value.\"},\"removeCollectionAdmin(address)\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionAdminCross((address,uint256))\":{\"notice\":\"Remove collection admin.\"},\"removeCollectionSponsor()\":{\"notice\":\"Remove collection sponsor.\"},\"removeFromCollectionAllowList(address)\":{\"notice\":\"Remove the user from the allowed list.\"},\"removeFromCollectionAllowListCross((address,uint256))\":{\"notice\":\"Remove user from allowed list.\"},\"setCollectionAccess(uint8)\":{\"notice\":\"Set the collection access method.\"},\"setCollectionLimit(string,bool)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionLimit(string,uint32)\":{\"notice\":\"Set limits for the collection.\"},\"setCollectionMintMode(bool)\":{\"notice\":\"Switch permission for minting.\"},\"setCollectionNesting(bool)\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionNesting(bool,address[])\":{\"notice\":\"Toggle accessibility of collection nesting.\"},\"setCollectionProperties((string,bytes)[])\":{\"notice\":\"Set collection properties.\"},\"setCollectionProperty(string,bytes)\":{\"notice\":\"Set collection property.\"},\"setCollectionSponsor(address)\":{\"notice\":\"Set the sponsor of the collection.\"},\"setCollectionSponsorCross((address,uint256))\":{\"notice\":\"Set the sponsor of the collection.\"},\"setOwnerCross((address,uint256))\":{\"notice\":\"Changes collection owner to another account\"},\"setProperties(uint256,(string,bytes)[])\":{\"notice\":\"Set token properties value.\"},\"setProperty(uint256,string,bytes)\":{\"notice\":\"Set token property value.\"},\"setTokenPropertyPermission(string,bool,bool,bool)\":{\"notice\":\"Set permissions for token property.\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid RFTs\"},\"tokenContractAddress(uint256)\":{\"notice\":\"Returns EVM address for refungible token\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"notice\":\"Not implemented\"},\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"},\"totalSupply()\":{\"notice\":\"Count RFTs tracked by this contract\"},\"transfer(address,uint256)\":{\"notice\":\"Transfer ownership of an RFT\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"},\"transferFromCross((address,uint256),(address,uint256),uint256)\":{\"notice\":\"Transfer ownership of an RFT\"},\"uniqueCollectionType()\":{\"notice\":\"Returns collection type\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":\"UniqueRefungible\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {
+ "addCollectionAdmin(address)": {
+ "notice": "Add collection admin."
+ },
+ "addCollectionAdminCross((address,uint256))": {
+ "notice": "Add collection admin."
+ },
+ "addToCollectionAllowList(address)": {
+ "notice": "Add the user to the allowed list."
+ },
+ "addToCollectionAllowListCross((address,uint256))": {
+ "notice": "Add user to allowed list."
+ },
+ "allowed(address)": {
+ "notice": "Checks that user allowed to operate with collection."
+ },
+ "balanceOf(address)": {
+ "notice": "Count all RFTs assigned to an owner"
+ },
+ "burn(uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFrom(address,uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "burnFromCross((address,uint256),uint256)": {
+ "notice": "Burns a specific ERC721 token."
+ },
+ "changeCollectionOwner(address)": {
+ "notice": "Changes collection owner to another account"
+ },
+ "collectionAdmins()": {
+ "notice": "Get collection administrators"
+ },
+ "collectionOwner()": {
+ "notice": "Get collection owner."
+ },
+ "collectionProperties(string[])": {
+ "notice": "Get collection properties."
+ },
+ "collectionProperty(string)": {
+ "notice": "Get collection property."
+ },
+ "collectionSponsor()": {
+ "notice": "Get current sponsor."
+ },
+ "confirmCollectionSponsorship()": {
+ "notice": "Collection sponsorship confirmation."
+ },
+ "contractAddress()": {
+ "notice": "Get contract address."
+ },
+ "deleteCollectionProperties(string[])": {
+ "notice": "Delete collection properties."
+ },
+ "deleteCollectionProperty(string)": {
+ "notice": "Delete collection property."
+ },
+ "deleteProperty(uint256,string)": {
+ "notice": "Delete token property value."
+ },
+ "hasCollectionPendingSponsor()": {
+ "notice": "Whether there is a pending sponsor."
+ },
+ "isOwnerOrAdmin(address)": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "isOwnerOrAdminCross((address,uint256))": {
+ "notice": "Check that account is the owner or admin of the collection"
+ },
+ "mint(address)": {
+ "notice": "Function to mint token."
+ },
+ "mintWithTokenURI(address,string)": {
+ "notice": "Function to mint token with the given tokenUri."
+ },
+ "name()": {
+ "notice": "A descriptive name for a collection of NFTs in this contract"
+ },
+ "nextTokenId()": {
+ "notice": "Returns next free RFT ID."
+ },
+ "ownerOf(uint256)": {
+ "notice": "Find the owner of an RFT"
+ },
+ "property(uint256,string)": {
+ "notice": "Get token property value."
+ },
+ "removeCollectionAdmin(address)": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionAdminCross((address,uint256))": {
+ "notice": "Remove collection admin."
+ },
+ "removeCollectionSponsor()": {
+ "notice": "Remove collection sponsor."
+ },
+ "removeFromCollectionAllowList(address)": {
+ "notice": "Remove the user from the allowed list."
+ },
+ "removeFromCollectionAllowListCross((address,uint256))": {
+ "notice": "Remove user from allowed list."
+ },
+ "setCollectionAccess(uint8)": {
+ "notice": "Set the collection access method."
+ },
+ "setCollectionLimit(string,bool)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionLimit(string,uint32)": {
+ "notice": "Set limits for the collection."
+ },
+ "setCollectionMintMode(bool)": {
+ "notice": "Switch permission for minting."
+ },
+ "setCollectionNesting(bool)": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionNesting(bool,address[])": {
+ "notice": "Toggle accessibility of collection nesting."
+ },
+ "setCollectionProperties((string,bytes)[])": {
+ "notice": "Set collection properties."
+ },
+ "setCollectionProperty(string,bytes)": {
+ "notice": "Set collection property."
+ },
+ "setCollectionSponsor(address)": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setCollectionSponsorCross((address,uint256))": {
+ "notice": "Set the sponsor of the collection."
+ },
+ "setOwnerCross((address,uint256))": {
+ "notice": "Changes collection owner to another account"
+ },
+ "setProperties(uint256,(string,bytes)[])": {
+ "notice": "Set token properties value."
+ },
+ "setProperty(uint256,string,bytes)": {
+ "notice": "Set token property value."
+ },
+ "setTokenPropertyPermission(string,bool,bool,bool)": {
+ "notice": "Set permissions for token property."
+ },
+ "symbol()": {
+ "notice": "An abbreviated name for NFTs in this contract"
+ },
+ "tokenByIndex(uint256)": {
+ "notice": "Enumerate valid RFTs"
+ },
+ "tokenContractAddress(uint256)": {
+ "notice": "Returns EVM address for refungible token"
+ },
+ "tokenOfOwnerByIndex(address,uint256)": {
+ "notice": "Not implemented"
+ },
+ "tokenURI(uint256)": {
+ "notice": "A distinct Uniform Resource Identifier (URI) for a given asset."
+ },
+ "totalSupply()": {
+ "notice": "Count RFTs tracked by this contract"
+ },
+ "transfer(address,uint256)": {
+ "notice": "Transfer ownership of an RFT"
+ },
+ "transferFrom(address,address,uint256)": {
+ "notice": "Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"
+ },
+ "transferFromCross((address,uint256),(address,uint256),uint256)": {
+ "notice": "Transfer ownership of an RFT"
+ },
+ "uniqueCollectionType()": {
+ "notice": "Returns collection type"
+ }
+ },
+ "version": 1
+ }
+ }
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol": {
+ "Dummy": {
+ "abi": [],
+ "devdoc": {
+ "details": "common stubs holder",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"common stubs holder\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"Dummy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC1633": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "parentToken",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "parentTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0x5755c3f2",
+ "kind": "dev",
+ "methods": {
+ "parentToken()": {
+ "details": "EVM selector for this function is: 0x80a54001, or in textual repr: parentToken()"
+ },
+ "parentTokenId()": {
+ "details": "EVM selector for this function is: 0xd7f083f3, or in textual repr: parentTokenId()"
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "parentToken()": "80a54001",
+ "parentTokenId()": "d7f083f3",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"parentToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parentTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0x5755c3f2\",\"kind\":\"dev\",\"methods\":{\"parentToken()\":{\"details\":\"EVM selector for this function is: 0x80a54001, or in textual repr: parentToken()\"},\"parentTokenId()\":{\"details\":\"EVM selector for this function is: 0xd7f083f3, or in textual repr: parentTokenId()\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"ERC1633\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC165": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC20": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "Implementation of the basic standard token. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.mdthe ERC-165 identifier for this interface is 0x942e8b22",
+ "kind": "dev",
+ "methods": {
+ "allowance(address,address)": {
+ "details": "Function to check the amount of tokens that an owner allowed to a spender.EVM selector for this function is: 0xdd62ed3e, or in textual repr: allowance(address,address)",
+ "params": {
+ "owner": "address The address which owns the funds.",
+ "spender": "address The address which will spend the funds."
+ },
+ "returns": {
+ "_0": "A uint256 specifying the amount of tokens still available for the spender."
+ }
+ },
+ "approve(address,uint256)": {
+ "details": "Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)",
+ "params": {
+ "amount": "The amount of tokens to be spent.",
+ "spender": "The address which will spend the funds."
+ }
+ },
+ "balanceOf(address)": {
+ "details": "Gets the balance of the specified address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "The address to query the balance of."
+ },
+ "returns": {
+ "_0": "An uint256 representing the amount owned by the passed address."
+ }
+ },
+ "decimals()": {
+ "details": "Not supportedEVM selector for this function is: 0x313ce567, or in textual repr: decimals()"
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()",
+ "returns": {
+ "_0": "the name of the token."
+ }
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()",
+ "returns": {
+ "_0": "the symbol of the token."
+ }
+ },
+ "totalSupply()": {
+ "details": "Total number of tokens in existenceEVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()"
+ },
+ "transfer(address,uint256)": {
+ "details": "Transfer token for a specified addressEVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "amount": "The amount to be transferred.",
+ "to": "The address to transfer to."
+ }
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Transfer tokens from one address to anotherEVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "amount": "uint256 the amount of tokens to be transferred",
+ "from": "address The address which you want to send tokens from",
+ "to": "address The address which you want to transfer to"
+ }
+ }
+ },
+ "title": "Standard ERC20 token",
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "name()": "06fdde03",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard token. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.mdthe ERC-165 identifier for this interface is 0x942e8b22\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.EVM selector for this function is: 0xdd62ed3e, or in textual repr: allowance(address,address)\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"returns\":{\"_0\":\"A uint256 specifying the amount of tokens still available for the spender.\"}},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\",\"params\":{\"amount\":\"The amount of tokens to be spent.\",\"spender\":\"The address which will spend the funds.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"The address to query the balance of.\"},\"returns\":{\"_0\":\"An uint256 representing the amount owned by the passed address.\"}},\"decimals()\":{\"details\":\"Not supportedEVM selector for this function is: 0x313ce567, or in textual repr: decimals()\"},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\",\"returns\":{\"_0\":\"the name of the token.\"}},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\",\"returns\":{\"_0\":\"the symbol of the token.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existenceEVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified addressEVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"amount\":\"The amount to be transferred.\",\"to\":\"The address to transfer to.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to anotherEVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"amount\":\"uint256 the amount of tokens to be transferred\",\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\"}}},\"title\":\"Standard ERC20 token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC20Events": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+ ],
+ "devdoc": {
+ "details": "inlined interface",
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"inlined interface\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"ERC20Events\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "ERC20UniqueExtensions": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "repartition",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "details": "the ERC-165 identifier for this interface is 0xab8deb37",
+ "kind": "dev",
+ "methods": {
+ "burnFrom(address,uint256)": {
+ "details": "Function that burns an amount of the token of a given account, deducting from the sender's allowance for said account.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "amount": "The amount that will be burnt.",
+ "from": "The account whose tokens will be burnt."
+ }
+ },
+ "repartition(uint256)": {
+ "details": "Function that changes total amount of the tokens. Throws if `msg.sender` doesn't owns all of the tokens.EVM selector for this function is: 0xd2418ca7, or in textual repr: repartition(uint256)",
+ "params": {
+ "amount": "New total amount of the tokens."
+ }
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "burnFrom(address,uint256)": "79cc6790",
+ "repartition(uint256)": "d2418ca7",
+ "supportsInterface(bytes4)": "01ffc9a7"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"repartition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"the ERC-165 identifier for this interface is 0xab8deb37\",\"kind\":\"dev\",\"methods\":{\"burnFrom(address,uint256)\":{\"details\":\"Function that burns an amount of the token of a given account, deducting from the sender's allowance for said account.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"amount\":\"The amount that will be burnt.\",\"from\":\"The account whose tokens will be burnt.\"}},\"repartition(uint256)\":{\"details\":\"Function that changes total amount of the tokens. Throws if `msg.sender` doesn't owns all of the tokens.EVM selector for this function is: 0xd2418ca7, or in textual repr: repartition(uint256)\",\"params\":{\"amount\":\"New total amount of the tokens.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"ERC20UniqueExtensions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ },
+ "UniqueRefungibleToken": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "parentToken",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "parentTokenId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "repartition",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceID",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {
+ "allowance(address,address)": {
+ "details": "Function to check the amount of tokens that an owner allowed to a spender.EVM selector for this function is: 0xdd62ed3e, or in textual repr: allowance(address,address)",
+ "params": {
+ "owner": "address The address which owns the funds.",
+ "spender": "address The address which will spend the funds."
+ },
+ "returns": {
+ "_0": "A uint256 specifying the amount of tokens still available for the spender."
+ }
+ },
+ "approve(address,uint256)": {
+ "details": "Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)",
+ "params": {
+ "amount": "The amount of tokens to be spent.",
+ "spender": "The address which will spend the funds."
+ }
+ },
+ "balanceOf(address)": {
+ "details": "Gets the balance of the specified address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)",
+ "params": {
+ "owner": "The address to query the balance of."
+ },
+ "returns": {
+ "_0": "An uint256 representing the amount owned by the passed address."
+ }
+ },
+ "burnFrom(address,uint256)": {
+ "details": "Function that burns an amount of the token of a given account, deducting from the sender's allowance for said account.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)",
+ "params": {
+ "amount": "The amount that will be burnt.",
+ "from": "The account whose tokens will be burnt."
+ }
+ },
+ "decimals()": {
+ "details": "Not supportedEVM selector for this function is: 0x313ce567, or in textual repr: decimals()"
+ },
+ "name()": {
+ "details": "EVM selector for this function is: 0x06fdde03, or in textual repr: name()",
+ "returns": {
+ "_0": "the name of the token."
+ }
+ },
+ "parentToken()": {
+ "details": "EVM selector for this function is: 0x80a54001, or in textual repr: parentToken()"
+ },
+ "parentTokenId()": {
+ "details": "EVM selector for this function is: 0xd7f083f3, or in textual repr: parentTokenId()"
+ },
+ "repartition(uint256)": {
+ "details": "Function that changes total amount of the tokens. Throws if `msg.sender` doesn't owns all of the tokens.EVM selector for this function is: 0xd2418ca7, or in textual repr: repartition(uint256)",
+ "params": {
+ "amount": "New total amount of the tokens."
+ }
+ },
+ "symbol()": {
+ "details": "EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()",
+ "returns": {
+ "_0": "the symbol of the token."
+ }
+ },
+ "totalSupply()": {
+ "details": "Total number of tokens in existenceEVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()"
+ },
+ "transfer(address,uint256)": {
+ "details": "Transfer token for a specified addressEVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)",
+ "params": {
+ "amount": "The amount to be transferred.",
+ "to": "The address to transfer to."
+ }
+ },
+ "transferFrom(address,address,uint256)": {
+ "details": "Transfer tokens from one address to anotherEVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)",
+ "params": {
+ "amount": "uint256 the amount of tokens to be transferred",
+ "from": "address The address which you want to send tokens from",
+ "to": "address The address which you want to transfer to"
+ }
+ }
+ },
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "gasEstimates": null,
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "burnFrom(address,uint256)": "79cc6790",
+ "decimals()": "313ce567",
+ "name()": "06fdde03",
+ "parentToken()": "80a54001",
+ "parentTokenId()": "d7f083f3",
+ "repartition(uint256)": "d2418ca7",
+ "supportsInterface(bytes4)": "01ffc9a7",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parentToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parentTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"repartition\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.EVM selector for this function is: 0xdd62ed3e, or in textual repr: allowance(address,address)\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"returns\":{\"_0\":\"A uint256 specifying the amount of tokens still available for the spender.\"}},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729EVM selector for this function is: 0x095ea7b3, or in textual repr: approve(address,uint256)\",\"params\":{\"amount\":\"The amount of tokens to be spent.\",\"spender\":\"The address which will spend the funds.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.EVM selector for this function is: 0x70a08231, or in textual repr: balanceOf(address)\",\"params\":{\"owner\":\"The address to query the balance of.\"},\"returns\":{\"_0\":\"An uint256 representing the amount owned by the passed address.\"}},\"burnFrom(address,uint256)\":{\"details\":\"Function that burns an amount of the token of a given account, deducting from the sender's allowance for said account.EVM selector for this function is: 0x79cc6790, or in textual repr: burnFrom(address,uint256)\",\"params\":{\"amount\":\"The amount that will be burnt.\",\"from\":\"The account whose tokens will be burnt.\"}},\"decimals()\":{\"details\":\"Not supportedEVM selector for this function is: 0x313ce567, or in textual repr: decimals()\"},\"name()\":{\"details\":\"EVM selector for this function is: 0x06fdde03, or in textual repr: name()\",\"returns\":{\"_0\":\"the name of the token.\"}},\"parentToken()\":{\"details\":\"EVM selector for this function is: 0x80a54001, or in textual repr: parentToken()\"},\"parentTokenId()\":{\"details\":\"EVM selector for this function is: 0xd7f083f3, or in textual repr: parentTokenId()\"},\"repartition(uint256)\":{\"details\":\"Function that changes total amount of the tokens. Throws if `msg.sender` doesn't owns all of the tokens.EVM selector for this function is: 0xd2418ca7, or in textual repr: repartition(uint256)\",\"params\":{\"amount\":\"New total amount of the tokens.\"}},\"symbol()\":{\"details\":\"EVM selector for this function is: 0x95d89b41, or in textual repr: symbol()\",\"returns\":{\"_0\":\"the symbol of the token.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existenceEVM selector for this function is: 0x18160ddd, or in textual repr: totalSupply()\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified addressEVM selector for this function is: 0xa9059cbb, or in textual repr: transfer(address,uint256)\",\"params\":{\"amount\":\"The amount to be transferred.\",\"to\":\"The address to transfer to.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to anotherEVM selector for this function is: 0x23b872dd, or in textual repr: transferFrom(address,address,uint256)\",\"params\":{\"amount\":\"uint256 the amount of tokens to be transferred\",\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":\"UniqueRefungibleToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ }
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol": {
+ "EvmToSubstrate": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_toEth",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_toSub",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintToSub",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "field_0",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "field_1",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Tuple21[]",
+ "name": "_properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintToSubstrateBulkProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Property[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "events": {
+ "MintToSub(address,uint256,address,uint256)": {
+ "details": "This emits when a mint to a substrate address has been made."
+ }
+ },
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506111d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633a0dbb1a14610046578063440dff9d1461005b5780637a8d97861461006e575b600080fd5b610059610054366004610d6f565b610081565b005b610059610069366004610d6f565b610472565b61005961007c366004610dc9565b6109fb565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed9190610df3565b6101125760405162461bcd60e51b815260040161010990610e1c565b60405180910390fd5b82806101555760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561019a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101c29190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201156104165760408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b81523060048201528a906001600160a01b03821690636a627842906024016020604051808303816000875af11580156102a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c69190610f4c565b604051630a769d3760e11b81529092506001600160a01b038216906314ed3a6e906102f99085908d908d90600401610fd4565b600060405180830381600087803b15801561031357600080fd5b505af1158015610327573d6000803e3d6000fd5b5050604080518082018252308152600060208083018290528351808501855291825281018f9052915163d5cf430b60e01b81526001600160a01b038616945063d5cf430b935061037c92908790600401611088565b600060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b5050505050610416565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b6064820152608401610109565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190610df3565b6104fa5760405162461bcd60e51b815260040161010990610e1c565b828061053d5760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610582573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105aa9190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016108065760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c85818110610701576107016110c1565b905060200281019061071391906110d7565b61071d90806110f7565b8e8e8781811061072f5761072f6110c1565b905060200281019061074191906110d7565b61074f9060208101906110f7565b6040518663ffffffff1660e01b815260040161076f95949392919061113e565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050806107ab90611177565b90506106d7565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b9261037c929091908790600401611088565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b45760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c8581811061094a5761094a6110c1565b905060200281019061095c91906110d7565b61096690806110f7565b8e8e87818110610978576109786110c1565b905060200281019061098a91906110d7565b6109989060208101906110f7565b6040518663ffffffff1660e01b81526004016109b895949392919061113e565b600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050806109f490611177565b9050610920565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190610df3565b610a835760405162461bcd60e51b815260040161010990610e1c565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af09190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201610c3e576040516335313c2160e11b815230600482015287906001600160a01b03821690636a627842906024015b6020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f4c565b604080518082018252308152600060208083018290528351808501855291825281018b9052915163d5cf430b60e01b81529294506001600160a01b0384169263d5cf430b92610c0692918790600401611088565b600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b5050505050610cae565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b815230600482015287906001600160a01b03821690636a62784290602401610b6f565b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610d1e57600080fd5b919050565b60008083601f840112610d3557600080fd5b50813567ffffffffffffffff811115610d4d57600080fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b60008060008060608587031215610d8557600080fd5b610d8e85610d07565b935060208501359250604085013567ffffffffffffffff811115610db157600080fd5b610dbd87828801610d23565b95989497509550505050565b60008060408385031215610ddc57600080fd5b610de583610d07565b946020939093013593505050565b600060208284031215610e0557600080fd5b81518015158114610e1557600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610e9557600080fd5b825167ffffffffffffffff80821115610ead57600080fd5b818501915085601f830112610ec157600080fd5b815181811115610ed357610ed3610e6c565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e6c565b816040528281528886848701011115610f1357600080fd5b600093505b82841015610f355784840186015181850187015292850192610f18565b600086848301015280965050505050505092915050565b600060208284031215610f5e57600080fd5b5051919050565b6000808335601e19843603018112610f7c57600080fd5b830160208101925035905067ffffffffffffffff811115610f9c57600080fd5b803603821315610d6857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006040808301868452602082818601528186835260608601905060608760051b8701019250876000805b8981101561107857888603605f190184528235368c9003603e19018112611024578283fd5b8b016110308180610f65565b8989526110408a8a018284610fab565b91505061104f87830183610f65565b9250888203888a0152611063828483610fab565b98505050938501935091840191600101610fff565b50939a9950505050505050505050565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a00190565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126110ed57600080fd5b9190910192915050565b6000808335601e1984360301811261110e57600080fd5b83018035915067ffffffffffffffff82111561112957600080fd5b602001915036819003821315610d6857600080fd5b858152606060208201526000611158606083018688610fab565b828103604084015261116b818587610fab565b98975050505050505050565b60006001820161119757634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206fee43cab49543809f191e238525b8a47306c665c42f86e318153d2b9e9d1de064736f6c63430008110033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D4 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3A0DBB1A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x440DFF9D EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x7A8D9786 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0x81 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x59 PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x7C CALLDATASIZE PUSH1 0x4 PUSH2 0xDC9 JUMP JUMPDEST PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x112 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 PUSH2 0x155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x50726F70657269657320697320656D707479 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1C2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD ISZERO PUSH2 0x416 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP11 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C6 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA769D37 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x14ED3A6E SWAP1 PUSH2 0x2F9 SWAP1 DUP6 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0xFD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP16 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP5 POP PUSH4 0xD5CF430B SWAP4 POP PUSH2 0x37C SWAP3 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x57726F6E6720636F6C6C656374696F6E20747970652E20576F726B73206F6E6C PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1E481DDA5D1A08139195081BDC88149195 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH32 0xFB3433367F20C42151D30B3D2C634726A94C4F9FA7D45120606029741AEB7535 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4DE SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x4FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST DUP3 DUP1 PUSH2 0x53D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x50726F70657269657320697320656D707479 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x5AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD PUSH2 0x806 JUMPI PUSH1 0x0 DUP11 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x75794A3C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x642 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x666 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6D3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x7B2 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1752D67B DUP5 DUP13 DUP13 DUP6 DUP2 DUP2 LT PUSH2 0x701 JUMPI PUSH2 0x701 PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x713 SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x71D SWAP1 DUP1 PUSH2 0x10F7 JUMP JUMPDEST DUP15 DUP15 DUP8 DUP2 DUP2 LT PUSH2 0x72F JUMPI PUSH2 0x72F PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x74F SWAP1 PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76F SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH2 0x7AB SWAP1 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP PUSH2 0x6D7 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 PUSH4 0xD5CF430B SWAP3 PUSH2 0x37C SWAP3 SWAP1 SWAP2 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP11 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x75794A3C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8AF SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91C SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x7B2 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1752D67B DUP5 DUP13 DUP13 DUP6 DUP2 DUP2 LT PUSH2 0x94A JUMPI PUSH2 0x94A PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x95C SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x966 SWAP1 DUP1 PUSH2 0x10F7 JUMP JUMPDEST DUP15 DUP15 DUP8 DUP2 DUP2 LT PUSH2 0x978 JUMPI PUSH2 0x978 PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x98A SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x998 SWAP1 PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH2 0x9F4 SWAP1 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP PUSH2 0x920 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA67 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0xA83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAF0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD PUSH2 0xC3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB2 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 PUSH4 0xD5CF430B SWAP3 PUSH2 0xC06 SWAP3 SWAP2 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0xCAE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH32 0xFB3433367F20C42151D30B3D2C634726A94C4F9FA7D45120606029741AEB7535 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD8E DUP6 PUSH2 0xD07 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDBD DUP8 DUP3 DUP9 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDE5 DUP4 PUSH2 0xD07 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x30 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920636F6C6C656374696F6E2061646D696E2F6F776E65722063616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH16 0x18D85B1B081D1A1A5CC81B595D1A1BD9 PUSH1 0x82 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE6C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE6C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0xF35 JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xF7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP1 DUP4 ADD DUP7 DUP5 MSTORE PUSH1 0x20 DUP3 DUP2 DUP7 ADD MSTORE DUP2 DUP7 DUP4 MSTORE PUSH1 0x60 DUP7 ADD SWAP1 POP PUSH1 0x60 DUP8 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP8 PUSH1 0x0 DUP1 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0x1078 JUMPI DUP9 DUP7 SUB PUSH1 0x5F NOT ADD DUP5 MSTORE DUP3 CALLDATALOAD CALLDATASIZE DUP13 SWAP1 SUB PUSH1 0x3E NOT ADD DUP2 SLT PUSH2 0x1024 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP12 ADD PUSH2 0x1030 DUP2 DUP1 PUSH2 0xF65 JUMP JUMPDEST DUP10 DUP10 MSTORE PUSH2 0x1040 DUP11 DUP11 ADD DUP3 DUP5 PUSH2 0xFAB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x104F DUP8 DUP4 ADD DUP4 PUSH2 0xF65 JUMP JUMPDEST SWAP3 POP DUP9 DUP3 SUB DUP9 DUP11 ADD MSTORE PUSH2 0x1063 DUP3 DUP5 DUP4 PUSH2 0xFAB JUMP JUMPDEST SWAP9 POP POP POP SWAP4 DUP6 ADD SWAP4 POP SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xFFF JUMP JUMPDEST POP SWAP4 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 SWAP5 DUP6 ADD MLOAD DUP6 DUP4 ADD MSTORE DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x3E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x10ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x110E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1158 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0xFAB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x116B DUP2 DUP6 DUP8 PUSH2 0xFAB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1197 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xEE43CAB49543809F191E238525B8A473 MOD 0xC6 PUSH6 0xC42F86E31815 RETURNDATASIZE 0x2B SWAP15 SWAP14 SAR 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ",
+ "sourceMap": "673:5833:5:-:0;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@mintToSubstrateBulkProperty_2268": {
+ "entryPoint": 129,
+ "id": 2268,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@mintToSubstrateWithProperty_2151": {
+ "entryPoint": 1138,
+ "id": 2151,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@mintToSubstrate_1942": {
+ "entryPoint": 2555,
+ "id": 1942,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_decode_address": {
+ "entryPoint": 3335,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_decode_array_struct_Tuple21_calldata_dyn_calldata": {
+ "entryPoint": 3363,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3529,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 4
+ },
+ "abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr": {
+ "entryPoint": 3439,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 4
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 3571,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_string_memory_ptr_fromMemory": {
+ "entryPoint": 3714,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 3916,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_string_calldata": {
+ "entryPoint": 4011,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_struct_EthCrossAccount": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_address_t_uint256__to_t_address_t_uint256_t_address_t_uint256__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 5,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 3612,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__fromStack_reversed": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__fromStack_reversed": {
+ "entryPoint": 4232,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr__to_t_uint256_t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
+ "entryPoint": 4052,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": {
+ "entryPoint": 4414,
+ "id": null,
+ "parameterSlots": 6,
+ "returnSlots": 1
+ },
+ "access_calldata_tail_t_bytes_calldata_ptr": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "access_calldata_tail_t_string_calldata_ptr": {
+ "entryPoint": 4343,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "access_calldata_tail_t_struct$_Property_$1762_calldata_ptr": {
+ "entryPoint": 4311,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "calldata_access_string_calldata": {
+ "entryPoint": 3941,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "increment_t_uint256": {
+ "entryPoint": 4471,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x32": {
+ "entryPoint": 4289,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 3692,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:11384:6",
+ "statements": [
+ {
+ "nodeType": "YulBlock",
+ "src": "6:3:6",
+ "statements": []
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "63:124:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "73:29:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "95:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "82:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "82:20:6"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "73:5:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "165:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "174:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "177:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "167:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "167:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "167:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "124:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "135:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "150:3:6",
+ "type": "",
+ "value": "160"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "155:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "146:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "146:11:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "159:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "142:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "142:19:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "131:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "131:31:6"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "121:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "121:42:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "114:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "114:50:6"
+ },
+ "nodeType": "YulIf",
+ "src": "111:70:6"
+ }
+ ]
+ },
+ "name": "abi_decode_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "42:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "53:5:6",
+ "type": ""
+ }
+ ],
+ "src": "14:173:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "292:283:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "341:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "350:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "353:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "343:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "343:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "343:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "320:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "328:4:6",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "316:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "316:17:6"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "335:3:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "312:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "312:27:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "305:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "305:35:6"
+ },
+ "nodeType": "YulIf",
+ "src": "302:55:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "366:30:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "389:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "376:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "376:20:6"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "366:6:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "439:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "448:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "451:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "441:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "441:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "441:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "411:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "419:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "408:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "408:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "405:50:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "464:29:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "480:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "488:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "476:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "476:17:6"
+ },
+ "variableNames": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulIdentifier",
+ "src": "464:8:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "553:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "562:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "555:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "555:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "528:1:6",
+ "type": "",
+ "value": "5"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "531:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "524:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "524:14:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "512:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "512:27:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "541:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "508:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "508:38:6"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "548:3:6"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "505:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "505:47:6"
+ },
+ "nodeType": "YulIf",
+ "src": "502:67:6"
+ }
+ ]
+ },
+ "name": "abi_decode_array_struct_Tuple21_calldata_dyn_calldata",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "255:6:6",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "263:3:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulTypedName",
+ "src": "271:8:6",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "281:6:6",
+ "type": ""
+ }
+ ],
+ "src": "192:383:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "745:456:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "791:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "800:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "803:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "793:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "793:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "793:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "766:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "775:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "762:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "762:23:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "787:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "758:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "758:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "755:52:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "816:39:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "845:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_address",
+ "nodeType": "YulIdentifier",
+ "src": "826:18:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "826:29:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "816:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "864:42:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "891:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "887:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "887:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "874:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "874:32:6"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "864:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "915:46:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "946:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "957:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "942:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "942:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "929:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "929:32:6"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "919:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1004:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1013:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1016:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1006:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1006:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1006:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "976:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "984:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "973:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "973:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "970:50:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1029:112:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1113:9:6"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1124:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1109:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1109:22:6"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1133:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_array_struct_Tuple21_calldata_dyn_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "1055:53:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1055:86:6"
+ },
+ "variables": [
+ {
+ "name": "value2_1",
+ "nodeType": "YulTypedName",
+ "src": "1033:8:6",
+ "type": ""
+ },
+ {
+ "name": "value3_1",
+ "nodeType": "YulTypedName",
+ "src": "1043:8:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1150:18:6",
+ "value": {
+ "name": "value2_1",
+ "nodeType": "YulIdentifier",
+ "src": "1160:8:6"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "1150:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1177:18:6",
+ "value": {
+ "name": "value3_1",
+ "nodeType": "YulIdentifier",
+ "src": "1187:8:6"
+ },
+ "variableNames": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "1177:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "687:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "698:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "710:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "718:6:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "726:6:6",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "734:6:6",
+ "type": ""
+ }
+ ],
+ "src": "580:621:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1373:456:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1419:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1428:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1431:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1421:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1421:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1421:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1394:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1403:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1390:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1390:23:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1386:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1386:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "1383:52:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1444:39:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1473:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_address",
+ "nodeType": "YulIdentifier",
+ "src": "1454:18:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1454:29:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1444:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1492:42:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1519:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1530:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1515:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1515:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "1502:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1502:32:6"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1492:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1543:46:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1574:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1585:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1570:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1570:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "1557:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1557:32:6"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1547:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1632:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1641:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1644:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1634:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1634:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1634:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1604:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1612:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "1601:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1601:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "1598:50:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1657:112:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1741:9:6"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1752:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1737:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1737:22:6"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1761:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_array_struct_Tuple21_calldata_dyn_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "1683:53:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1683:86:6"
+ },
+ "variables": [
+ {
+ "name": "value2_1",
+ "nodeType": "YulTypedName",
+ "src": "1661:8:6",
+ "type": ""
+ },
+ {
+ "name": "value3_1",
+ "nodeType": "YulTypedName",
+ "src": "1671:8:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1778:18:6",
+ "value": {
+ "name": "value2_1",
+ "nodeType": "YulIdentifier",
+ "src": "1788:8:6"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "1778:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1805:18:6",
+ "value": {
+ "name": "value3_1",
+ "nodeType": "YulIdentifier",
+ "src": "1815:8:6"
+ },
+ "variableNames": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "1805:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1315:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1326:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1338:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1346:6:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "1354:6:6",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "1362:6:6",
+ "type": ""
+ }
+ ],
+ "src": "1206:623:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1921:167:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1967:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1976:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1979:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1969:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1969:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1969:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1942:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1951:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1938:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1938:23:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1963:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1934:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1934:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "1931:52:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1992:39:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2021:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_address",
+ "nodeType": "YulIdentifier",
+ "src": "2002:18:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2002:29:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1992:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2040:42:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2067:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2078:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2063:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2063:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2050:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2050:32:6"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2040:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1879:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1890:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1902:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1910:6:6",
+ "type": ""
+ }
+ ],
+ "src": "1834:254:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2194:102:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2204:26:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2216:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2227:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2212:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2212:18:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "2204:4:6"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2246:9:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2261:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2277:3:6",
+ "type": "",
+ "value": "160"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2282:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "2273:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2273:11:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2286:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2269:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2269:19:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "2257:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2257:32:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2239:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2239:51:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2239:51:6"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2163:9:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2174:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "2185:4:6",
+ "type": ""
+ }
+ ],
+ "src": "2093:203:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2379:199:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2425:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2434:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2437:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2427:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2427:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2427:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2400:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2409:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2396:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2396:23:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2421:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2392:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2392:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "2389:52:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2450:29:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2469:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "2463:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2463:16:6"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2454:5:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2532:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2541:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2544:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2534:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2534:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2534:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2501:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2522:5:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2515:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2515:13:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2508:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2508:21:6"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2498:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2498:32:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2491:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2491:40:6"
+ },
+ "nodeType": "YulIf",
+ "src": "2488:60:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2557:15:6",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2567:5:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2557:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2345:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2356:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2368:6:6",
+ "type": ""
+ }
+ ],
+ "src": "2301:277:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2757:238:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2774:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2785:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2767:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2767:21:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2767:21:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2808:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2819:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2804:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2804:18:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2824:2:6",
+ "type": "",
+ "value": "48"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2797:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2797:30:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2797:30:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2847:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2858:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2843:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2843:18:6"
+ },
+ {
+ "hexValue": "4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e20",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "2863:34:6",
+ "type": "",
+ "value": "Only collection admin/owner can "
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2836:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:62:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2836:62:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2918:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2929:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2914:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2914:18:6"
+ },
+ {
+ "hexValue": "63616c6c2074686973206d6574686f64",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "2934:18:6",
+ "type": "",
+ "value": "call this method"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2907:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2907:46:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2907:46:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2962:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2974:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2985:3:6",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2970:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2970:19:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "2962:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2734:9:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "2748:4:6",
+ "type": ""
+ }
+ ],
+ "src": "2583:412:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:168:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3191:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3202:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:21:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:21:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3225:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3236:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3221:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3221:18:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3241:2:6",
+ "type": "",
+ "value": "18"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3214:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3214:30:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3214:30:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3264:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3275:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3260:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3260:18:6"
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "3280:20:6",
+ "type": "",
+ "value": "Properies is empty"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3253:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3253:48:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3253:48:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3310:26:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3322:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3333:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3318:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3318:18:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3310:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3151:9:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3165:4:6",
+ "type": ""
+ }
+ ],
+ "src": "3000:342:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3379:95:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3396:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3403:3:6",
+ "type": "",
+ "value": "224"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3408:10:6",
+ "type": "",
+ "value": "0x4e487b71"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "3399:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3399:20:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3389:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3389:31:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3389:31:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3436:1:6",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3439:4:6",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3429:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3429:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3429:15:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3460:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3463:4:6",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3453:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3453:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3453:15:6"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "3347:127:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3570:951:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3580:12:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3590:2:6",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "_1",
+ "nodeType": "YulTypedName",
+ "src": "3584:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3637:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3646:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3649:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3639:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3639:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3639:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3612:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3621:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3608:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3608:23:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "3633:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3604:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3604:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "3601:52:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3662:30:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3682:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "3676:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3676:16:6"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "3666:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3701:28:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3711:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ },
+ "variables": [
+ {
+ "name": "_2",
+ "nodeType": "YulTypedName",
+ "src": "3705:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3756:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3765:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3768:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3758:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3758:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3744:6:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "3752:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3741:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3741:14:6"
+ },
+ "nodeType": "YulIf",
+ "src": "3738:34:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3781:32:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3795:9:6"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3806:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3791:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3791:22:6"
+ },
+ "variables": [
+ {
+ "name": "_3",
+ "nodeType": "YulTypedName",
+ "src": "3785:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3861:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3870:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3873:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3863:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3863:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3863:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_3",
+ "nodeType": "YulIdentifier",
+ "src": "3840:2:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3844:4:6",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3836:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3836:13:6"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3851:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3832:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3832:27:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3825:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3825:35:6"
+ },
+ "nodeType": "YulIf",
+ "src": "3822:55:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3886:19:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "_3",
+ "nodeType": "YulIdentifier",
+ "src": "3902:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "3896:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3896:9:6"
+ },
+ "variables": [
+ {
+ "name": "_4",
+ "nodeType": "YulTypedName",
+ "src": "3890:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3928:22:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "3930:16:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3930:18:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3930:18:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "3920:2:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "3924:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3917:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3917:10:6"
+ },
+ "nodeType": "YulIf",
+ "src": "3914:36:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3959:17:6",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3973:2:6",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3969:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3969:7:6"
+ },
+ "variables": [
+ {
+ "name": "_5",
+ "nodeType": "YulTypedName",
+ "src": "3963:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3985:23:6",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4005:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "3999:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3999:9:6"
+ },
+ "variables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "3989:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4017:71:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4039:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "4063:2:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4067:4:6",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4059:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4059:13:6"
+ },
+ {
+ "name": "_5",
+ "nodeType": "YulIdentifier",
+ "src": "4074:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4055:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4055:22:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4079:2:6",
+ "type": "",
+ "value": "63"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4051:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4051:31:6"
+ },
+ {
+ "name": "_5",
+ "nodeType": "YulIdentifier",
+ "src": "4084:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4047:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4047:40:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4035:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4035:53:6"
+ },
+ "variables": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulTypedName",
+ "src": "4021:10:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4147:22:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4149:16:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4149:18:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4149:18:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "4106:10:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "4118:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4103:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4103:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "4126:10:6"
+ },
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4138:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4123:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4123:22:6"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "4100:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4100:46:6"
+ },
+ "nodeType": "YulIf",
+ "src": "4097:72:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4185:2:6",
+ "type": "",
+ "value": "64"
+ },
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "4189:10:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4178:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4178:22:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4178:22:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4216:6:6"
+ },
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "4224:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4209:18:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4209:18:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4273:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4282:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4285:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "4275:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4275:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4275:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_3",
+ "nodeType": "YulIdentifier",
+ "src": "4250:2:6"
+ },
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "4254:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4246:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4246:11:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "4259:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4242:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4242:20:6"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4239:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4239:33:6"
+ },
+ "nodeType": "YulIf",
+ "src": "4236:53:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4298:10:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4307:1:6",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4302:1:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4363:83:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4392:6:6"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4400:1:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4388:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4388:14:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "4404:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4384:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4384:23:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "_3",
+ "nodeType": "YulIdentifier",
+ "src": "4423:2:6"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4427:1:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4419:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4419:10:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "4431:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4415:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4415:19:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4409:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4409:26:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4377:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4377:59:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4377:59:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4328:1:6"
+ },
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "4331:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4325:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4325:9:6"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4335:19:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:15:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4346:1:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "4349:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4342:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:10:6"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4337:1:6"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4321:3:6",
+ "statements": []
+ },
+ "src": "4317:129:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4470:6:6"
+ },
+ {
+ "name": "_4",
+ "nodeType": "YulIdentifier",
+ "src": "4478:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4466:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4466:15:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "4483:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4462:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4462:24:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4488:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4455:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4455:35:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4455:35:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4499:16:6",
+ "value": {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4509:6:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4499:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3536:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3547:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3559:6:6",
+ "type": ""
+ }
+ ],
+ "src": "3479:1042:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4607:103:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4653:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4662:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4665:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "4655:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4655:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4655:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4628:7:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4637:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4624:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4624:23:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4649:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4620:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4620:32:6"
+ },
+ "nodeType": "YulIf",
+ "src": "4617:52:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4678:26:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4694:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4688:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4688:16:6"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4678:6:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4573:9:6",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4584:7:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4596:6:6",
+ "type": ""
+ }
+ ],
+ "src": "4526:184:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4792:424:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4802:43:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "4841:3:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "4828:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4828:17:6"
+ },
+ "variables": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulTypedName",
+ "src": "4806:18:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4934:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4943:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4946:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "4936:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4936:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "4868:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "4896:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4896:14:6"
+ },
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "4912:8:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4892:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4892:29:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4927:2:6",
+ "type": "",
+ "value": "30"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4923:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4923:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4888:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4888:43:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4864:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4864:68:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "4857:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4857:76:6"
+ },
+ "nodeType": "YulIf",
+ "src": "4854:96:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4959:48:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "4978:18:6"
+ },
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "4998:8:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4974:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4974:33:6"
+ },
+ "variables": [
+ {
+ "name": "value_1",
+ "nodeType": "YulTypedName",
+ "src": "4963:7:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5016:31:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_1",
+ "nodeType": "YulIdentifier",
+ "src": "5039:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "5026:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5026:21:6"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5016:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5056:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_1",
+ "nodeType": "YulIdentifier",
+ "src": "5069:7:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5078:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5065:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5065:18:6"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5056:5:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5126:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5135:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5138:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5128:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5128:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5128:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5098:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5106:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "5095:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5095:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "5092:50:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5194:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5203:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5206:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5196:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5196:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5196:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5158:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "5169:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5169:14:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5185:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5165:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5165:27:6"
+ }
+ ],
+ "functionName": {
+ "name": "sgt",
+ "nodeType": "YulIdentifier",
+ "src": "5154:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5154:39:6"
+ },
+ "nodeType": "YulIf",
+ "src": "5151:59:6"
+ }
+ ]
+ },
+ "name": "calldata_access_string_calldata",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulTypedName",
+ "src": "4756:8:6",
+ "type": ""
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "4766:3:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4774:5:6",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "4781:6:6",
+ "type": ""
+ }
+ ],
+ "src": "4715:501:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5288:200:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5305:3:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5310:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5298:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5298:19:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5298:19:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5343:3:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5348:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5339:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5339:14:6"
+ },
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "5355:5:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5362:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldatacopy",
+ "nodeType": "YulIdentifier",
+ "src": "5326:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5326:43:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5326:43:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5393:3:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5398:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5389:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5389:16:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5407:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5385:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5385:27:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5414:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5378:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5378:38:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5378:38:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5425:57:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5440:3:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5453:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5461:2:6",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5449:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5449:15:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5470:2:6",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "5466:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5466:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5445:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5445:29:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5436:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5436:39:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5477:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5432:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5432:50:6"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "5425:3:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_string_calldata",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "5257:5:6",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:6",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5272:3:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "5280:3:6",
+ "type": ""
+ }
+ ],
+ "src": "5221:267:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5732:1310:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5742:12:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5752:2:6",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "_1",
+ "nodeType": "YulTypedName",
+ "src": "5746:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5763:32:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5781:9:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "5792:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5777:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5777:18:6"
+ },
+ "variables": [
+ {
+ "name": "tail_1",
+ "nodeType": "YulTypedName",
+ "src": "5767:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5811:9:6"
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5822:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5804:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5804:25:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5804:25:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5838:12:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5848:2:6",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "_2",
+ "nodeType": "YulTypedName",
+ "src": "5842:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5870:9:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "5881:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5866:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5866:18:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "5886:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5859:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5859:30:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5859:30:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5898:17:6",
+ "value": {
+ "name": "tail_1",
+ "nodeType": "YulIdentifier",
+ "src": "5909:6:6"
+ },
+ "variables": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5902:3:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tail_1",
+ "nodeType": "YulIdentifier",
+ "src": "5931:6:6"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "5939:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5924:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5924:22:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5924:22:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5955:25:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5966:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5977:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5962:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5962:18:6"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5955:3:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5989:53:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6011:9:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6026:1:6",
+ "type": "",
+ "value": "5"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6029:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "6022:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6022:14:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6007:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6007:30:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6039:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6003:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6003:39:6"
+ },
+ "variables": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulTypedName",
+ "src": "5993:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6051:20:6",
+ "value": {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6065:6:6"
+ },
+ "variables": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulTypedName",
+ "src": "6055:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6080:10:6",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6089:1:6",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "6084:1:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6099:12:6",
+ "value": {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6110:1:6"
+ },
+ "variables": [
+ {
+ "name": "i_1",
+ "nodeType": "YulTypedName",
+ "src": "6103:3:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6175:838:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6196:3:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6209:6:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6217:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6205:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6205:22:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6233:2:6",
+ "type": "",
+ "value": "95"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "6229:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6229:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6201:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6201:36:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6189:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6189:49:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6189:49:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6251:46:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6290:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "6277:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6277:20:6"
+ },
+ "variables": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulTypedName",
+ "src": "6255:18:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6388:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6397:1:6"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6400:1:6"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "6390:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6390:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6390:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "6324:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "6352:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6352:14:6"
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6368:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6348:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6348:27:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6381:2:6",
+ "type": "",
+ "value": "62"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "6377:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6377:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6344:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6344:41:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "6320:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6320:66:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "6313:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6313:74:6"
+ },
+ "nodeType": "YulIf",
+ "src": "6310:94:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6417:44:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "6434:18:6"
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6454:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6430:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6430:31:6"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6421:5:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6474:79:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6540:5:6"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6547:5:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldata_access_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "6508:31:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6508:45:6"
+ },
+ "variables": [
+ {
+ "name": "memberValue0",
+ "nodeType": "YulTypedName",
+ "src": "6478:12:6",
+ "type": ""
+ },
+ {
+ "name": "memberValue1",
+ "nodeType": "YulTypedName",
+ "src": "6492:12:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6573:6:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "6581:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6566:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6566:18:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6566:18:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6597:85:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "memberValue0",
+ "nodeType": "YulIdentifier",
+ "src": "6638:12:6"
+ },
+ {
+ "name": "memberValue1",
+ "nodeType": "YulIdentifier",
+ "src": "6652:12:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6670:6:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "6678:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6666:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6666:15:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "6611:26:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6611:71:6"
+ },
+ "variables": [
+ {
+ "name": "tail_3",
+ "nodeType": "YulTypedName",
+ "src": "6601:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6695:92:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6765:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6776:5:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "6783:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6772:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6772:14:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldata_access_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "6733:31:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6733:54:6"
+ },
+ "variables": [
+ {
+ "name": "memberValue0_1",
+ "nodeType": "YulTypedName",
+ "src": "6699:14:6",
+ "type": ""
+ },
+ {
+ "name": "memberValue1_1",
+ "nodeType": "YulTypedName",
+ "src": "6715:14:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6811:6:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "6819:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6807:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6807:15:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail_3",
+ "nodeType": "YulIdentifier",
+ "src": "6828:6:6"
+ },
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6836:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6824:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6824:19:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6800:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6800:44:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6800:44:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6857:76:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "memberValue0_1",
+ "nodeType": "YulIdentifier",
+ "src": "6894:14:6"
+ },
+ {
+ "name": "memberValue1_1",
+ "nodeType": "YulIdentifier",
+ "src": "6910:14:6"
+ },
+ {
+ "name": "tail_3",
+ "nodeType": "YulIdentifier",
+ "src": "6926:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "6867:26:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6867:66:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "6857:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6946:25:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6960:6:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "6968:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6956:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6956:15:6"
+ },
+ "variableNames": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6946:6:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6984:19:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6995:3:6"
+ },
+ {
+ "name": "_2",
+ "nodeType": "YulIdentifier",
+ "src": "7000:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6991:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6991:12:6"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6984:3:6"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i_1",
+ "nodeType": "YulIdentifier",
+ "src": "6131:3:6"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6136:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6128:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6128:15:6"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "6144:22:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6146:18:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "i_1",
+ "nodeType": "YulIdentifier",
+ "src": "6157:3:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6162:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6153:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6153:11:6"
+ },
+ "variableNames": [
+ {
+ "name": "i_1",
+ "nodeType": "YulIdentifier",
+ "src": "6146:3:6"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "6124:3:6",
+ "statements": []
+ },
+ "src": "6120:893:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7022:14:6",
+ "value": {
+ "name": "tail_2",
+ "nodeType": "YulIdentifier",
+ "src": "7030:6:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "7022:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr__to_t_uint256_t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5685:9:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "5696:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5704:6:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5712:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "5723:4:6",
+ "type": ""
+ }
+ ],
+ "src": "5493:1549:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7106:123:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7123:3:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7138:5:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "7132:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7132:12:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7154:3:6",
+ "type": "",
+ "value": "160"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7159:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "7150:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7150:11:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7163:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "7146:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7146:19:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "7128:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7128:38:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7116:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7116:51:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7116:51:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7187:3:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7192:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7183:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7183:14:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7209:5:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7216:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7205:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7205:16:6"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "7199:5:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7199:23:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7176:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7176:47:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7176:47:6"
+ }
+ ]
+ },
+ "name": "abi_encode_struct_EthCrossAccount",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "7090:5:6",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "7097:3:6",
+ "type": ""
+ }
+ ],
+ "src": "7047:182:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7519:218:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7529:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7541:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7552:3:6",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7537:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7537:19:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "7529:4:6"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "7599:6:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7607:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_EthCrossAccount",
+ "nodeType": "YulIdentifier",
+ "src": "7565:33:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7565:52:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7565:52:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "7660:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7672:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7683:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7668:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7668:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_EthCrossAccount",
+ "nodeType": "YulIdentifier",
+ "src": "7626:33:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7626:61:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7626:61:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7707:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7718:3:6",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7703:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7703:19:6"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "7724:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7696:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7696:35:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7696:35:6"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7472:9:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "7483:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "7491:6:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "7499:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "7510:4:6",
+ "type": ""
+ }
+ ],
+ "src": "7234:503:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7916:239:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7933:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7944:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7926:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7926:21:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7926:21:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7967:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7978:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7963:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7963:18:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7983:2:6",
+ "type": "",
+ "value": "49"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7956:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7956:30:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7956:30:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8006:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8017:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8002:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8002:18:6"
+ },
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "8022:34:6",
+ "type": "",
+ "value": "Wrong collection type. Works onl"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7995:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7995:62:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7995:62:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8077:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8088:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8073:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8073:18:6"
+ },
+ {
+ "hexValue": "792077697468204e4654206f7220524654",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "8093:19:6",
+ "type": "",
+ "value": "y with NFT or RFT"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8066:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8066:47:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8066:47:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8122:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8134:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8145:3:6",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8130:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8130:19:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "8122:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7893:9:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "7907:4:6",
+ "type": ""
+ }
+ ],
+ "src": "7742:413:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8345:262:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8355:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8367:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8378:3:6",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8363:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8363:19:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "8355:4:6"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8391:29:6",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8409:3:6",
+ "type": "",
+ "value": "160"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8414:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "8405:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8405:11:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8418:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8401:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8401:19:6"
+ },
+ "variables": [
+ {
+ "name": "_1",
+ "nodeType": "YulTypedName",
+ "src": "8395:2:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8436:9:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "8451:6:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "8459:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "8447:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8447:15:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8429:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8429:34:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8429:34:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8483:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8494:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8479:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8479:18:6"
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "8499:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8472:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8472:34:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8472:34:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8526:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8537:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8522:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8522:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "8546:6:6"
+ },
+ {
+ "name": "_1",
+ "nodeType": "YulIdentifier",
+ "src": "8554:2:6"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "8542:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8542:15:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8515:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8515:43:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8515:43:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8578:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8589:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8574:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8574:18:6"
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "8594:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8567:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8567:34:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8567:34:6"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_address_t_uint256__to_t_address_t_uint256_t_address_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "8290:9:6",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "8301:6:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "8309:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "8317:6:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "8325:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "8336:4:6",
+ "type": ""
+ }
+ ],
+ "src": "8160:447:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8644:95:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8661:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8668:3:6",
+ "type": "",
+ "value": "224"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8673:10:6",
+ "type": "",
+ "value": "0x4e487b71"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "8664:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8664:20:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8654:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8654:31:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8654:31:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8701:1:6",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8704:4:6",
+ "type": "",
+ "value": "0x32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8694:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8694:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8694:15:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8725:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8728:4:6",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8718:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8718:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8718:15:6"
+ }
+ ]
+ },
+ "name": "panic_error_0x32",
+ "nodeType": "YulFunctionDefinition",
+ "src": "8612:127:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8847:222:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8857:51:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulIdentifier",
+ "src": "8896:11:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "8883:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8883:25:6"
+ },
+ "variables": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulTypedName",
+ "src": "8861:18:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8997:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9006:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9009:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8999:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8999:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8999:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "8931:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "8959:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8959:14:6"
+ },
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "8975:8:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8955:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8955:29:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8990:2:6",
+ "type": "",
+ "value": "62"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "8986:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8986:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8951:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8951:43:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "8927:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8927:68:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8920:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8920:76:6"
+ },
+ "nodeType": "YulIf",
+ "src": "8917:96:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9022:41:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "9034:8:6"
+ },
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9044:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9030:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9030:33:6"
+ },
+ "variableNames": [
+ {
+ "name": "addr",
+ "nodeType": "YulIdentifier",
+ "src": "9022:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "access_calldata_tail_t_struct$_Property_$1762_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulTypedName",
+ "src": "8812:8:6",
+ "type": ""
+ },
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulTypedName",
+ "src": "8822:11:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "addr",
+ "nodeType": "YulTypedName",
+ "src": "8838:4:6",
+ "type": ""
+ }
+ ],
+ "src": "8744:325:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9169:427:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9179:51:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9218:11:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9205:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9205:25:6"
+ },
+ "variables": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulTypedName",
+ "src": "9183:18:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9319:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9328:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9331:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9321:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9321:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9321:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9253:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "9281:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9281:14:6"
+ },
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "9297:8:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9277:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9277:29:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9312:2:6",
+ "type": "",
+ "value": "30"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "9308:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9308:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9273:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9273:43:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "9249:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9249:68:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9242:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9242:76:6"
+ },
+ "nodeType": "YulIf",
+ "src": "9239:96:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9344:47:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "9362:8:6"
+ },
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9372:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9358:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9358:33:6"
+ },
+ "variables": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulTypedName",
+ "src": "9348:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9400:30:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulIdentifier",
+ "src": "9423:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9410:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9410:20:6"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "9400:6:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9473:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9482:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9485:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9475:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9475:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9475:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "9445:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9453:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "9442:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9442:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "9439:50:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9498:25:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulIdentifier",
+ "src": "9510:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9518:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9506:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9506:17:6"
+ },
+ "variableNames": [
+ {
+ "name": "addr",
+ "nodeType": "YulIdentifier",
+ "src": "9498:4:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9574:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9583:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9586:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9576:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9576:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9576:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "addr",
+ "nodeType": "YulIdentifier",
+ "src": "9539:4:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "9549:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9549:14:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "9565:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9545:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9545:27:6"
+ }
+ ],
+ "functionName": {
+ "name": "sgt",
+ "nodeType": "YulIdentifier",
+ "src": "9535:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9535:38:6"
+ },
+ "nodeType": "YulIf",
+ "src": "9532:58:6"
+ }
+ ]
+ },
+ "name": "access_calldata_tail_t_string_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulTypedName",
+ "src": "9126:8:6",
+ "type": ""
+ },
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulTypedName",
+ "src": "9136:11:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "addr",
+ "nodeType": "YulTypedName",
+ "src": "9152:4:6",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "9158:6:6",
+ "type": ""
+ }
+ ],
+ "src": "9074:522:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9695:427:6",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9705:51:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9744:11:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9731:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9731:25:6"
+ },
+ "variables": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulTypedName",
+ "src": "9709:18:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9845:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9854:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9857:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9847:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9847:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9847:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9779:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "9807:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9807:14:6"
+ },
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "9823:8:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9803:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9803:29:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9838:2:6",
+ "type": "",
+ "value": "30"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "9834:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9834:7:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9799:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9799:43:6"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "9775:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9775:68:6"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9768:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9768:76:6"
+ },
+ "nodeType": "YulIf",
+ "src": "9765:96:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9870:47:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulIdentifier",
+ "src": "9888:8:6"
+ },
+ {
+ "name": "rel_offset_of_tail",
+ "nodeType": "YulIdentifier",
+ "src": "9898:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9884:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9884:33:6"
+ },
+ "variables": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulTypedName",
+ "src": "9874:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9926:30:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulIdentifier",
+ "src": "9949:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9936:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9936:20:6"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "9926:6:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9999:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10008:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10011:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "10001:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10001:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10001:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "9971:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9979:18:6",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "9968:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9968:30:6"
+ },
+ "nodeType": "YulIf",
+ "src": "9965:50:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10024:25:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "addr_1",
+ "nodeType": "YulIdentifier",
+ "src": "10036:6:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10044:4:6",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10032:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10032:17:6"
+ },
+ "variableNames": [
+ {
+ "name": "addr",
+ "nodeType": "YulIdentifier",
+ "src": "10024:4:6"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10100:16:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10109:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10112:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "10102:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10102:12:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10102:12:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "addr",
+ "nodeType": "YulIdentifier",
+ "src": "10065:4:6"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "functionName": {
+ "name": "calldatasize",
+ "nodeType": "YulIdentifier",
+ "src": "10075:12:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10075:14:6"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "10091:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "10071:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10071:27:6"
+ }
+ ],
+ "functionName": {
+ "name": "sgt",
+ "nodeType": "YulIdentifier",
+ "src": "10061:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10061:38:6"
+ },
+ "nodeType": "YulIf",
+ "src": "10058:58:6"
+ }
+ ]
+ },
+ "name": "access_calldata_tail_t_bytes_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "base_ref",
+ "nodeType": "YulTypedName",
+ "src": "9652:8:6",
+ "type": ""
+ },
+ {
+ "name": "ptr_to_tail",
+ "nodeType": "YulTypedName",
+ "src": "9662:11:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "addr",
+ "nodeType": "YulTypedName",
+ "src": "9678:4:6",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "9684:6:6",
+ "type": ""
+ }
+ ],
+ "src": "9601:521:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10342:291:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10359:9:6"
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10370:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10352:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10352:25:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10352:25:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10397:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10408:2:6",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10393:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10393:18:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10413:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10386:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10386:30:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10386:30:6"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10425:76:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10466:6:6"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "10474:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10486:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10497:2:6",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10482:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10482:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "10439:26:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10439:62:6"
+ },
+ "variables": [
+ {
+ "name": "tail_1",
+ "nodeType": "YulTypedName",
+ "src": "10429:6:6",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10521:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10532:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10517:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10517:18:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail_1",
+ "nodeType": "YulIdentifier",
+ "src": "10541:6:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10549:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "10537:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10537:22:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10510:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10510:50:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10510:50:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10569:58:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "10604:6:6"
+ },
+ {
+ "name": "value4",
+ "nodeType": "YulIdentifier",
+ "src": "10612:6:6"
+ },
+ {
+ "name": "tail_1",
+ "nodeType": "YulIdentifier",
+ "src": "10620:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_string_calldata",
+ "nodeType": "YulIdentifier",
+ "src": "10577:26:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10577:50:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10569:4:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10279:9:6",
+ "type": ""
+ },
+ {
+ "name": "value4",
+ "nodeType": "YulTypedName",
+ "src": "10290:6:6",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "10298:6:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "10306:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "10314:6:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10322:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "10333:4:6",
+ "type": ""
+ }
+ ],
+ "src": "10127:506:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10685:185:6",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10724:111:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10745:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10752:3:6",
+ "type": "",
+ "value": "224"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10757:10:6",
+ "type": "",
+ "value": "0x4e487b71"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "10748:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10748:20:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10738:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10738:31:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10738:31:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10789:1:6",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10792:4:6",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "10782:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10782:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10782:15:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10817:1:6",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10820:4:6",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "10810:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10810:15:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10810:15:6"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10701:5:6"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10712:1:6",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "10708:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10708:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "10698:2:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10698:17:6"
+ },
+ "nodeType": "YulIf",
+ "src": "10695:140:6"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10844:20:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10855:5:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10862:1:6",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10851:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10851:13:6"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "10844:3:6"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "increment_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "10667:5:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "10677:3:6",
+ "type": ""
+ }
+ ],
+ "src": "10638:232:6"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11164:218:6",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11174:27:6",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11186:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11197:3:6",
+ "type": "",
+ "value": "160"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11182:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11182:19:6"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11174:4:6"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "11244:6:6"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11252:9:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_EthCrossAccount",
+ "nodeType": "YulIdentifier",
+ "src": "11210:33:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11210:52:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11210:52:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "11305:6:6"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11317:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11328:2:6",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11313:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11313:18:6"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_struct_EthCrossAccount",
+ "nodeType": "YulIdentifier",
+ "src": "11271:33:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11271:61:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11271:61:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11352:9:6"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11363:3:6",
+ "type": "",
+ "value": "128"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11348:3:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11348:19:6"
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "11369:6:6"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "11341:6:6"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11341:35:6"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11341:35:6"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11117:9:6",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "11128:6:6",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "11136:6:6",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "11144:6:6",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "11155:4:6",
+ "type": ""
+ }
+ ],
+ "src": "10875:507:6"
+ }
+ ]
+ },
+ "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_array_struct_Tuple21_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_array_struct_Tuple21_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_array_struct_Tuple21_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"Only collection admin/owner can \")\n mstore(add(headStart, 96), \"call this method\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Properies is empty\")\n tail := add(headStart, 96)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := mload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_4, 0x1f), _5), 63), _5))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _4)\n if gt(add(add(_3, _4), _1), dataEnd) { revert(0, 0) }\n let i := 0\n for { } lt(i, _4) { i := add(i, _1) }\n {\n mstore(add(add(memPtr, i), _1), mload(add(add(_3, i), _1)))\n }\n mstore(add(add(memPtr, _4), _1), 0)\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function calldata_access_string_calldata(base_ref, ptr) -> value, length\n {\n let rel_offset_of_tail := calldataload(ptr)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let value_1 := add(rel_offset_of_tail, base_ref)\n length := calldataload(value_1)\n value := add(value_1, 0x20)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n if sgt(value, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_string_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint256_t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr__to_t_uint256_t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := 64\n let tail_1 := add(headStart, _1)\n mstore(headStart, value0)\n let _2 := 32\n mstore(add(headStart, _2), _1)\n let pos := tail_1\n mstore(tail_1, value2)\n pos := add(headStart, 96)\n let tail_2 := add(add(headStart, shl(5, value2)), 96)\n let srcPtr := value1\n let i := 0\n let i_1 := i\n for { } lt(i_1, value2) { i_1 := add(i_1, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(95)))\n let rel_offset_of_tail := calldataload(srcPtr)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value1), not(62)))) { revert(i, i) }\n let value := add(rel_offset_of_tail, value1)\n let memberValue0, memberValue1 := calldata_access_string_calldata(value, value)\n mstore(tail_2, _1)\n let tail_3 := abi_encode_string_calldata(memberValue0, memberValue1, add(tail_2, _1))\n let memberValue0_1, memberValue1_1 := calldata_access_string_calldata(value, add(value, _2))\n mstore(add(tail_2, _2), sub(tail_3, tail_2))\n tail_2 := abi_encode_string_calldata(memberValue0_1, memberValue1_1, tail_3)\n srcPtr := add(srcPtr, _2)\n pos := add(pos, _2)\n }\n tail := tail_2\n }\n function abi_encode_struct_EthCrossAccount(value, pos)\n {\n mstore(pos, and(mload(value), sub(shl(160, 1), 1)))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n }\n function abi_encode_tuple_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$610_memory_ptr_t_struct$_EthCrossAccount_$610_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_struct_EthCrossAccount(value0, headStart)\n abi_encode_struct_EthCrossAccount(value1, add(headStart, 64))\n mstore(add(headStart, 128), value2)\n }\n function abi_encode_tuple_t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 49)\n mstore(add(headStart, 64), \"Wrong collection type. Works onl\")\n mstore(add(headStart, 96), \"y with NFT or RFT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_uint256_t_address_t_uint256__to_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function access_calldata_tail_t_struct$_Property_$1762_calldata_ptr(base_ref, ptr_to_tail) -> addr\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(62)))) { revert(0, 0) }\n addr := add(base_ref, rel_offset_of_tail)\n }\n function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 96))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_string_calldata(value3, value4, tail_1)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__to_t_struct$_EthCrossAccount_$1253_memory_ptr_t_struct$_EthCrossAccount_$1253_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_struct_EthCrossAccount(value0, headStart)\n abi_encode_struct_EthCrossAccount(value1, add(headStart, 64))\n mstore(add(headStart, 128), value2)\n }\n}",
+ "id": 6,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633a0dbb1a14610046578063440dff9d1461005b5780637a8d97861461006e575b600080fd5b610059610054366004610d6f565b610081565b005b610059610069366004610d6f565b610472565b61005961007c366004610dc9565b6109fb565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed9190610df3565b6101125760405162461bcd60e51b815260040161010990610e1c565b60405180910390fd5b82806101555760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561019a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101c29190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201156104165760408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b81523060048201528a906001600160a01b03821690636a627842906024016020604051808303816000875af11580156102a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c69190610f4c565b604051630a769d3760e11b81529092506001600160a01b038216906314ed3a6e906102f99085908d908d90600401610fd4565b600060405180830381600087803b15801561031357600080fd5b505af1158015610327573d6000803e3d6000fd5b5050604080518082018252308152600060208083018290528351808501855291825281018f9052915163d5cf430b60e01b81526001600160a01b038616945063d5cf430b935061037c92908790600401611088565b600060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b5050505050610416565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b6064820152608401610109565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190610df3565b6104fa5760405162461bcd60e51b815260040161010990610e1c565b828061053d5760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b6044820152606401610109565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610582573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105aa9190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016108065760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c85818110610701576107016110c1565b905060200281019061071391906110d7565b61071d90806110f7565b8e8e8781811061072f5761072f6110c1565b905060200281019061074191906110d7565b61074f9060208101906110f7565b6040518663ffffffff1660e01b815260040161076f95949392919061113e565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050806107ab90611177565b90506106d7565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b9261037c929091908790600401611088565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b45760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af9190610f4c565b6040516335313c2160e11b81523060048201529092506001600160a01b03821690636a627842906024016020604051808303816000875af11580156108f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091c9190610f4c565b5060005b858110156107b257816001600160a01b0316631752d67b848c8c8581811061094a5761094a6110c1565b905060200281019061095c91906110d7565b61096690806110f7565b8e8e87818110610978576109786110c1565b905060200281019061098a91906110d7565b6109989060208101906110f7565b6040518663ffffffff1660e01b81526004016109b895949392919061113e565b600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050806109f490611177565b9050610920565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190610df3565b610a835760405162461bcd60e51b815260040161010990610e1c565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af09190810190610e82565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b2958201610c3e576040516335313c2160e11b815230600482015287906001600160a01b03821690636a627842906024015b6020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190610f4c565b604080518082018252308152600060208083018290528351808501855291825281018b9052915163d5cf430b60e01b81529294506001600160a01b0384169263d5cf430b92610c0692918790600401611088565b600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b5050505050610cae565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe9682016103b4576040516335313c2160e11b815230600482015287906001600160a01b03821690636a62784290602401610b6f565b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610d1e57600080fd5b919050565b60008083601f840112610d3557600080fd5b50813567ffffffffffffffff811115610d4d57600080fd5b6020830191508360208260051b8501011115610d6857600080fd5b9250929050565b60008060008060608587031215610d8557600080fd5b610d8e85610d07565b935060208501359250604085013567ffffffffffffffff811115610db157600080fd5b610dbd87828801610d23565b95989497509550505050565b60008060408385031215610ddc57600080fd5b610de583610d07565b946020939093013593505050565b600060208284031215610e0557600080fd5b81518015158114610e1557600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610e9557600080fd5b825167ffffffffffffffff80821115610ead57600080fd5b818501915085601f830112610ec157600080fd5b815181811115610ed357610ed3610e6c565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e6c565b816040528281528886848701011115610f1357600080fd5b600093505b82841015610f355784840186015181850187015292850192610f18565b600086848301015280965050505050505092915050565b600060208284031215610f5e57600080fd5b5051919050565b6000808335601e19843603018112610f7c57600080fd5b830160208101925035905067ffffffffffffffff811115610f9c57600080fd5b803603821315610d6857600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006040808301868452602082818601528186835260608601905060608760051b8701019250876000805b8981101561107857888603605f190184528235368c9003603e19018112611024578283fd5b8b016110308180610f65565b8989526110408a8a018284610fab565b91505061104f87830183610f65565b9250888203888a0152611063828483610fab565b98505050938501935091840191600101610fff565b50939a9950505050505050505050565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a00190565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126110ed57600080fd5b9190910192915050565b6000808335601e1984360301811261110e57600080fd5b83018035915067ffffffffffffffff82111561112957600080fd5b602001915036819003821315610d6857600080fd5b858152606060208201526000611158606083018688610fab565b828103604084015261116b818587610fab565b98975050505050505050565b60006001820161119757634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206fee43cab49543809f191e238525b8a47306c665c42f86e318153d2b9e9d1de064736f6c63430008110033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3A0DBB1A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x440DFF9D EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x7A8D9786 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0x81 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x59 PUSH2 0x69 CALLDATASIZE PUSH1 0x4 PUSH2 0xD6F JUMP JUMPDEST PUSH2 0x472 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x7C CALLDATASIZE PUSH1 0x4 PUSH2 0xDC9 JUMP JUMPDEST PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xED SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x112 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP1 PUSH2 0x155 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x50726F70657269657320697320656D707479 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1C2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD ISZERO PUSH2 0x416 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP11 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2C6 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA769D37 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x14ED3A6E SWAP1 PUSH2 0x2F9 SWAP1 DUP6 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0xFD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x327 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP16 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP5 POP PUSH4 0xD5CF430B SWAP4 POP PUSH2 0x37C SWAP3 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x57726F6E6720636F6C6C656374696F6E20747970652E20576F726B73206F6E6C PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1E481DDA5D1A08139195081BDC88149195 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH32 0xFB3433367F20C42151D30B3D2C634726A94C4F9FA7D45120606029741AEB7535 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4DE SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0x4FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST DUP3 DUP1 PUSH2 0x53D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x50726F70657269657320697320656D707479 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x109 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x5AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD PUSH2 0x806 JUMPI PUSH1 0x0 DUP11 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x75794A3C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x642 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x666 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6D3 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x7B2 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1752D67B DUP5 DUP13 DUP13 DUP6 DUP2 DUP2 LT PUSH2 0x701 JUMPI PUSH2 0x701 PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x713 SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x71D SWAP1 DUP1 PUSH2 0x10F7 JUMP JUMPDEST DUP15 DUP15 DUP8 DUP2 DUP2 LT PUSH2 0x72F JUMPI PUSH2 0x72F PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x74F SWAP1 PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76F SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH2 0x7AB SWAP1 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP PUSH2 0x6D7 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP14 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 PUSH4 0xD5CF430B SWAP3 PUSH2 0x37C SWAP3 SWAP1 SWAP2 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP11 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x75794A3C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8AF SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91C SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x7B2 JUMPI DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1752D67B DUP5 DUP13 DUP13 DUP6 DUP2 DUP2 LT PUSH2 0x94A JUMPI PUSH2 0x94A PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x95C SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x966 SWAP1 DUP1 PUSH2 0x10F7 JUMP JUMPDEST DUP15 DUP15 DUP8 DUP2 DUP2 LT PUSH2 0x978 JUMPI PUSH2 0x978 PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x98A SWAP2 SWAP1 PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x998 SWAP1 PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x113E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH2 0x9F4 SWAP1 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP PUSH2 0x920 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x9811B0C7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x9811B0C7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA43 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA67 SWAP2 SWAP1 PUSH2 0xDF3 JUMP JUMPDEST PUSH2 0xA83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x109 SWAP1 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD34B55B8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAF0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE82 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x526546756E6769626C65 PUSH1 0xB0 SHL SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 POP PUSH1 0x0 PUSH32 0x3248D02B1E2F292B1142854EBDEEC13D4B4F9224DBCDB24A3D7810FE54B7B295 DUP3 ADD PUSH2 0xC3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB2 SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE ADDRESS DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE SWAP2 DUP3 MSTORE DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 MLOAD PUSH4 0xD5CF430B PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 PUSH4 0xD5CF430B SWAP3 PUSH2 0xC06 SWAP3 SWAP2 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1088 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH2 0xCAE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE PUSH32 0x63BEC732F5ECEE1B8B708F2F01C23AA0F0A08A1F0DF248CEDDA343C476EBFE96 DUP3 ADD PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35313C21 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE DUP8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH2 0xB6F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP2 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 MLOAD PUSH32 0xFB3433367F20C42151D30B3D2C634726A94C4F9FA7D45120606029741AEB7535 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xD35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD8E DUP6 PUSH2 0xD07 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDBD DUP8 DUP3 DUP9 ADD PUSH2 0xD23 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDE5 DUP4 PUSH2 0xD07 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x30 SWAP1 DUP3 ADD MSTORE PUSH32 0x4F6E6C7920636F6C6C656374696F6E2061646D696E2F6F776E65722063616E20 PUSH1 0x40 DUP3 ADD MSTORE PUSH16 0x18D85B1B081D1A1A5CC81B595D1A1BD9 PUSH1 0x82 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE6C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE6C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0xF35 JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xF7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP1 DUP4 ADD DUP7 DUP5 MSTORE PUSH1 0x20 DUP3 DUP2 DUP7 ADD MSTORE DUP2 DUP7 DUP4 MSTORE PUSH1 0x60 DUP7 ADD SWAP1 POP PUSH1 0x60 DUP8 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP8 PUSH1 0x0 DUP1 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0x1078 JUMPI DUP9 DUP7 SUB PUSH1 0x5F NOT ADD DUP5 MSTORE DUP3 CALLDATALOAD CALLDATASIZE DUP13 SWAP1 SUB PUSH1 0x3E NOT ADD DUP2 SLT PUSH2 0x1024 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP12 ADD PUSH2 0x1030 DUP2 DUP1 PUSH2 0xF65 JUMP JUMPDEST DUP10 DUP10 MSTORE PUSH2 0x1040 DUP11 DUP11 ADD DUP3 DUP5 PUSH2 0xFAB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x104F DUP8 DUP4 ADD DUP4 PUSH2 0xF65 JUMP JUMPDEST SWAP3 POP DUP9 DUP3 SUB DUP9 DUP11 ADD MSTORE PUSH2 0x1063 DUP3 DUP5 DUP4 PUSH2 0xFAB JUMP JUMPDEST SWAP9 POP POP POP SWAP4 DUP6 ADD SWAP4 POP SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xFFF JUMP JUMPDEST POP SWAP4 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 SWAP5 DUP6 ADD MLOAD DUP6 DUP4 ADD MSTORE DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 SWAP1 SWAP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x3E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x10ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x110E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0xD68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1158 PUSH1 0x60 DUP4 ADD DUP7 DUP9 PUSH2 0xFAB JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x116B DUP2 DUP6 DUP8 PUSH2 0xFAB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1197 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xEE43CAB49543809F191E238525B8A473 MOD 0xC6 PUSH6 0xC42F86E31815 RETURNDATASIZE 0x2B SWAP15 SWAP14 SAR 0xE0 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ",
+ "sourceMap": "673:5833:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5448:1056;;;;;;:::i;:::-;;:::i;:::-;;3688:1757;;;;;;:::i;:::-;;:::i;2212:1473::-;;;;;;:::i;:::-;;:::i;5448:1056::-;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;5606:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;;;;;;;;;5650:11;5680:20;5672:51:::1;;;::::0;-1:-1:-1;;;5672:51:5;;3202:2:6;5672:51:5::1;::::0;::::1;3184:21:6::0;3241:2;3221:18;;;3214:30;-1:-1:-1;;;3260:18:6;;;3253:48;3318:18;;5672:51:5::1;3000:342:6::0;5672:51:5::1;5728:25;5767:11;5728:51;;5783:22;5824:14;-1:-1:-1::0;;;;;5824:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;5824:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5808:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;5808:55;-1:-1:-1;5867:15:5::1;5891:44:::0;;;5887:541;::::1;;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;5949:45;;;5945:483:::1;;6109:33;::::0;-1:-1:-1;;;6109:33:5;;6136:4:::1;6109:33;::::0;::::1;2239:51:6::0;6037:11:5;;-1:-1:-1;;;;;6109:18:5;::::1;::::0;::::1;::::0;2212::6;;6109:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6148:49;::::0;-1:-1:-1;;;6148:49:5;;6099:43;;-1:-1:-1;;;;;;6148:27:5;::::1;::::0;::::1;::::0;:49:::1;::::0;6099:43;;6185:11;;;;6148:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6240:35:5::1;::::0;;;;::::1;::::0;;6266:4:::1;6240:35:::0;;-1:-1:-1;6240:35:5::1;::::0;;::::1;::::0;;;6281:49;;;;::::1;::::0;;;;;;::::1;::::0;;;6203:145;;-1:-1:-1;;;6203:145:5;;-1:-1:-1;;;;;6203:31:5;::::1;::::0;-1:-1:-1;6203:31:5::1;::::0;-1:-1:-1;6203:145:5::1;::::0;6281:49;6336:7;;6203:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5996:357;5945:483;;;6364:59;::::0;-1:-1:-1;;;6364:59:5;;7944:2:6;6364:59:5::1;::::0;::::1;7926:21:6::0;7983:2;7963:18;;;7956:30;8022:34;8002:18;;;7995:62;-1:-1:-1;;;8073:18:6;;;8066:47;8130:19;;6364:59:5::1;7742:413:6::0;5945:483:5::1;6437:63;::::0;;6455:1:::1;8429:34:6::0;;8494:2;8479:18;;8472:34;;;-1:-1:-1;;;;;8542:15:6;;8522:18;;;8515:43;8589:2;8574:18;;8567:34;;;6437:63:5;;::::1;::::0;;;;8378:3:6;6437:63:5;;::::1;5619:885;;;;1159:889:::0;5448:1056;;;;;:::o;3688:1757::-;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;3842:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;4035:10;4064:20;4056:51:::1;;;::::0;-1:-1:-1;;;4056:51:5;;3202:2:6;4056:51:5::1;::::0;::::1;3184:21:6::0;3241:2;3221:18;;;3214:30;-1:-1:-1;;;3260:18:6;;;3253:48;3318:18;;4056:51:5::1;3000:342:6::0;4056:51:5::1;4112:25;4151:11;4112:51;;4167:22;4208:14;-1:-1:-1::0;;;;;4208:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4208:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4192:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;4192:55;-1:-1:-1;4251:15:5::1;4275:44:::0;;;4271:1046:::1;;4326:30;4376:11;4326:62;;4403:13;-1:-1:-1::0;;;;;4403:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4435:33;::::0;-1:-1:-1;;;4435:33:5;;4462:4:::1;4435:33;::::0;::::1;2239:51:6::0;4393:37:5;;-1:-1:-1;;;;;;4435:18:5;::::1;::::0;::::1;::::0;2212::6;;4435:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4478:9;4473:133;4497:16;4493:1;:20;4473:133;;;4526:13;-1:-1:-1::0;;;;;4526:25:5::1;;4552:7;4561:10;;4572:1;4561:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;4580:10;;4591:1;4580:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;4526:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4515:3;;;;:::i;:::-;;;4473:133;;;-1:-1:-1::0;4647:35:5::1;::::0;;;;::::1;::::0;;4673:4:::1;4647:35:::0;;-1:-1:-1;4647:35:5::1;::::0;;::::1;::::0;;;4688:49;;;;::::1;::::0;;;;;;::::1;::::0;;;4610:145;;-1:-1:-1;;;4610:145:5;;-1:-1:-1;;;;;4610:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;4647:35;;4688:49;4743:7;;4610:145:::1;;;:::i;4271:1046::-;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;4770:45;;;4766:551:::1;;4822:23;4858:11;4822:48;;4885:13;-1:-1:-1::0;;;;;4885:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4917:33;::::0;-1:-1:-1;;;4917:33:5;;4944:4:::1;4917:33;::::0;::::1;2239:51:6::0;4875:37:5;;-1:-1:-1;;;;;;4917:18:5;::::1;::::0;::::1;::::0;2212::6;;4917:33:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4960:9;4955:133;4979:16;4975:1;:20;4955:133;;;5008:13;-1:-1:-1::0;;;;;5008:25:5::1;;5034:7;5043:10;;5054:1;5043:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;5062:10;;5073:1;5062:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;5008:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4997:3;;;;:::i;:::-;;;4955:133;;2212:1473:::0;1226:41;;-1:-1:-1;;;1226:41:5;;1256:10;1226:41;;;2239:51:6;2313:11:5;;;;-1:-1:-1;;;;;1226:29:5;;;;;2212:18:6;;1226:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1218:102;;;;-1:-1:-1;;;1218:102:5;;;;;;;:::i;:::-;2476:25:::1;2515:11;2476:51;;2531:22;2572:14;-1:-1:-1::0;;;;;2572:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;2572:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;2556:55:::0;;::::1;::::0;;::::1;::::0;756:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;756:19:5;::::1;::::0;;;;2556:55;-1:-1:-1;2615:15:5::1;2639:44:::0;;;2635:759:::1;;2771:33;::::0;-1:-1:-1;;;2771:33:5;;2798:4:::1;2771:33;::::0;::::1;2239:51:6::0;2740:11:5;;-1:-1:-1;;;;;2771:18:5;::::1;::::0;::::1;::::0;2212::6;;2771:33:5::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2847:35;::::0;;;;::::1;::::0;;2873:4:::1;2847:35:::0;;-1:-1:-1;2847:35:5::1;::::0;;::::1;::::0;;;2888:49;;;;::::1;::::0;;;;;;::::1;::::0;;;2810:145;;-1:-1:-1;;;2810:145:5;;2761:43;;-1:-1:-1;;;;;;2810:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;2847:35;2761:43;;2810:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2685:275;2635:759;;;836:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;836:12:5::1;::::0;;::::1;::::0;2970:45;;;2966:428:::1;;3130:33;::::0;-1:-1:-1;;;3130:33:5;;3157:4:::1;3130:33;::::0;::::1;2239:51:6::0;3058:11:5;;-1:-1:-1;;;;;3130:18:5;::::1;::::0;::::1;::::0;2212::6;;3130:33:5::1;2093:203:6::0;2966:428:5::1;3618:63;::::0;;3636:1:::1;8429:34:6::0;;8494:2;8479:18;;8472:34;;;-1:-1:-1;;;;;8542:15:6;;8522:18;;;8515:43;8589:2;8574:18;;8567:34;;;3618:63:5;;::::1;::::0;;;;8378:3:6;3618:63:5;;::::1;2326:1359;;;1159:889:::0;2212:1473;;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:383::-;271:8;281:6;335:3;328:4;320:6;316:17;312:27;302:55;;353:1;350;343:12;302:55;-1:-1:-1;376:20:6;;419:18;408:30;;405:50;;;451:1;448;441:12;405:50;488:4;480:6;476:17;464:29;;548:3;541:4;531:6;528:1;524:14;516:6;512:27;508:38;505:47;502:67;;;565:1;562;555:12;502:67;192:383;;;;;:::o;580:621::-;710:6;718;726;734;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;:::-;816:39;;902:2;891:9;887:18;874:32;864:42;;957:2;946:9;942:18;929:32;984:18;976:6;973:30;970:50;;;1016:1;1013;1006:12;970:50;1055:86;1133:7;1124:6;1113:9;1109:22;1055:86;:::i;:::-;580:621;;;;-1:-1:-1;1160:8:6;-1:-1:-1;;;;580:621:6:o;1834:254::-;1902:6;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2002:29;2021:9;2002:29;:::i;:::-;1992:39;2078:2;2063:18;;;;2050:32;;-1:-1:-1;;;1834:254:6:o;2301:277::-;2368:6;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2469:9;2463:16;2522:5;2515:13;2508:21;2501:5;2498:32;2488:60;;2544:1;2541;2534:12;2488:60;2567:5;2301:277;-1:-1:-1;;;2301:277:6:o;2583:412::-;2785:2;2767:21;;;2824:2;2804:18;;;2797:30;2863:34;2858:2;2843:18;;2836:62;-1:-1:-1;;;2929:2:6;2914:18;;2907:46;2985:3;2970:19;;2583:412::o;3347:127::-;3408:10;3403:3;3399:20;3396:1;3389:31;3439:4;3436:1;3429:15;3463:4;3460:1;3453:15;3479:1042;3559:6;3590:2;3633;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3682:9;3676:16;3711:18;3752:2;3744:6;3741:14;3738:34;;;3768:1;3765;3758:12;3738:34;3806:6;3795:9;3791:22;3781:32;;3851:7;3844:4;3840:2;3836:13;3832:27;3822:55;;3873:1;3870;3863:12;3822:55;3902:2;3896:9;3924:2;3920;3917:10;3914:36;;;3930:18;;:::i;:::-;4005:2;3999:9;3973:2;4059:13;;-1:-1:-1;;4055:22:6;;;4079:2;4051:31;4047:40;4035:53;;;4103:18;;;4123:22;;;4100:46;4097:72;;;4149:18;;:::i;:::-;4189:10;4185:2;4178:22;4224:2;4216:6;4209:18;4264:7;4259:2;4254;4250;4246:11;4242:20;4239:33;4236:53;;;4285:1;4282;4275:12;4236:53;4307:1;4298:10;;4317:129;4331:2;4328:1;4325:9;4317:129;;;4419:10;;;4415:19;;4409:26;4388:14;;;4384:23;;4377:59;4342:10;;;;4317:129;;;4488:1;4483:2;4478;4470:6;4466:15;4462:24;4455:35;4509:6;4499:16;;;;;;;;3479:1042;;;;:::o;4526:184::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:16:6;;4526:184;-1:-1:-1;4526:184:6:o;4715:501::-;4774:5;4781:6;4841:3;4828:17;4927:2;4923:7;4912:8;4896:14;4892:29;4888:43;4868:18;4864:68;4854:96;;4946:1;4943;4936:12;4854:96;4974:33;;5078:4;5065:18;;;-1:-1:-1;5026:21:6;;-1:-1:-1;5106:18:6;5095:30;;5092:50;;;5138:1;5135;5128:12;5092:50;5185:6;5169:14;5165:27;5158:5;5154:39;5151:59;;;5206:1;5203;5196:12;5221:267;5310:6;5305:3;5298:19;5362:6;5355:5;5348:4;5343:3;5339:14;5326:43;-1:-1:-1;5414:1:6;5389:16;;;5407:4;5385:27;;;5378:38;;;;5470:2;5449:15;;;-1:-1:-1;;5445:29:6;5436:39;;;5432:50;;5221:267::o;5493:1549::-;5723:4;5752:2;5792;5781:9;5777:18;5822:6;5811:9;5804:25;5848:2;5886;5881;5870:9;5866:18;5859:30;5909:6;5939;5931;5924:22;5977:2;5966:9;5962:18;5955:25;;6039:2;6029:6;6026:1;6022:14;6011:9;6007:30;6003:39;5989:53;;6065:6;6089:1;6110;6120:893;6136:6;6131:3;6128:15;6120:893;;;6205:22;;;-1:-1:-1;;6201:36:6;6189:49;;6277:20;;6352:14;6348:27;;;-1:-1:-1;;6344:41:6;6320:66;;6310:94;;6400:1;6397;6390:12;6310:94;6430:31;;6508:45;6430:31;;6508:45;:::i;:::-;6581:2;6573:6;6566:18;6611:71;6678:2;6670:6;6666:15;6652:12;6638;6611:71;:::i;:::-;6597:85;;;6733:54;6783:2;6776:5;6772:14;6765:5;6733:54;:::i;:::-;6695:92;;6836:6;6828;6824:19;6819:2;6811:6;6807:15;6800:44;6867:66;6926:6;6910:14;6894;6867:66;:::i;:::-;6857:76;-1:-1:-1;;;6991:12:6;;;;-1:-1:-1;6956:15:6;;;;6162:1;6153:11;6120:893;;;-1:-1:-1;7030:6:6;;5493:1549;-1:-1:-1;;;;;;;;;;5493:1549:6:o;7234:503::-;7132:12;;-1:-1:-1;;;;;7128:38:6;;;7116:51;;7216:4;7205:16;;;7199:23;7183:14;;;7176:47;7132:12;;7128:38;7683:2;7668:18;;7116:51;7205:16;;;;7199:23;7183:14;;;7176:47;7718:3;7703:19;;7696:35;;;;7552:3;7537:19;;7234:503::o;8612:127::-;8673:10;8668:3;8664:20;8661:1;8654:31;8704:4;8701:1;8694:15;8728:4;8725:1;8718:15;8744:325;8838:4;8896:11;8883:25;8990:2;8986:7;8975:8;8959:14;8955:29;8951:43;8931:18;8927:68;8917:96;;9009:1;9006;8999:12;8917:96;9030:33;;;;;8744:325;-1:-1:-1;;8744:325:6:o;9074:522::-;9152:4;9158:6;9218:11;9205:25;9312:2;9308:7;9297:8;9281:14;9277:29;9273:43;9253:18;9249:68;9239:96;;9331:1;9328;9321:12;9239:96;9358:33;;9410:20;;;-1:-1:-1;9453:18:6;9442:30;;9439:50;;;9485:1;9482;9475:12;9439:50;9518:4;9506:17;;-1:-1:-1;9549:14:6;9545:27;;;9535:38;;9532:58;;;9586:1;9583;9576:12;10127:506;10370:6;10359:9;10352:25;10413:2;10408;10397:9;10393:18;10386:30;10333:4;10439:62;10497:2;10486:9;10482:18;10474:6;10466;10439:62;:::i;:::-;10549:9;10541:6;10537:22;10532:2;10521:9;10517:18;10510:50;10577;10620:6;10612;10604;10577:50;:::i;:::-;10569:58;10127:506;-1:-1:-1;;;;;;;;10127:506:6:o;10638:232::-;10677:3;10698:17;;;10695:140;;10757:10;10752:3;10748:20;10745:1;10738:31;10792:4;10789:1;10782:15;10820:4;10817:1;10810:15;10695:140;-1:-1:-1;10862:1:6;10851:13;;10638:232::o"
+ },
+ "gasEstimates": {
+ "creation": {
+ "codeDepositCost": "912800",
+ "executionCost": "948",
+ "totalCost": "913748"
+ },
+ "external": {
+ "mintToSubstrate(address,uint256)": "infinite",
+ "mintToSubstrateBulkProperty(address,uint256,(string,bytes)[])": "infinite",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "infinite"
+ }
+ },
+ "methodIdentifiers": {
+ "mintToSubstrate(address,uint256)": "7a8d9786",
+ "mintToSubstrateBulkProperty(address,uint256,(string,bytes)[])": "3a0dbb1a",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "440dff9d"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_toEth\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toSub\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MintToSub\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"}],\"name\":\"mintToSubstrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"field_0\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"field_1\",\"type\":\"bytes\"}],\"internalType\":\"struct Tuple21[]\",\"name\":\"_properties\",\"type\":\"tuple[]\"}],\"name\":\"mintToSubstrateBulkProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Property[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"mintToSubstrateWithProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"MintToSub(address,uint256,address,uint256)\":{\"details\":\"This emits when a mint to a substrate address has been made.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":\"EvmToSubstrate\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0x7ded5e99243528ed63a0986417ad670c277ad42d348bf06f407fd06a12cc08a3\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://43a6299b0510c8feb55800153cee0ea845f7b06a4002bb122d99c6cc938f93c2\",\"dweb:/ipfs/QmPcgPtBkeyMe6LkTYcT6xD5WJhw8nLGaCrbEu2kUHGjgu\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x4ea6c5371aadbfd3e928377a01f5d3c72906286e0fd544a1391d7e362a131164\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://9a6c96c943b3e49bae15ad680883f197445d25f7207fbc6142d4271e1e4029b6\",\"dweb:/ipfs/QmNb1vMoHALNcrF3pZYCJ3Y9VQjfm9Ee8osrHvyjx5Q5yj\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x43f6d5e7e68be2a64b49dd44b1f40758b9aa37cf3bf01225d1ddfc98619ef4d2\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://45d55a2b15d867662783e015bef922daf59f40734d3bf668ddfa2373731589ac\",\"dweb:/ipfs/QmaF69m8kBKzJ8Av6jmYruhRySMcLtv1myeHjeHuN3gSvG\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":{\"keccak256\":\"0x36f13dcad1a598bad13e4019319da9ca6161782448bd7fc698c1e265140e5460\",\"license\":\"Apache License\",\"urls\":[\"bzz-raw://2e32be5bdb8265a44cbdb50306ea53fb56c52dbbe7b8d742af30f46e48133e13\",\"dweb:/ipfs/QmZfaDgiXDvyERJvYuvGXWT5FeRpPSdH5UuGgDnDxP5RVk\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [],
+ "types": null
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ }
+ }
+ },
+ "sources": {
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol",
+ "exportedSymbols": {
+ "CollectionHelpers": [
+ 99
+ ],
+ "CollectionHelpersEvents": [
+ 25
+ ],
+ "Dummy": [
+ 3
+ ],
+ "ERC165": [
+ 13
+ ]
+ },
+ "id": 100,
+ "license": "OTHER",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "75:31:0"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Dummy",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 2,
+ "nodeType": "StructuredDocumentation",
+ "src": "108:29:0",
+ "text": "@dev common stubs holder"
+ },
+ "fullyImplemented": true,
+ "id": 3,
+ "linearizedBaseContracts": [
+ 3
+ ],
+ "name": "Dummy",
+ "nameLocation": "147:5:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 100,
+ "src": "137:20:0",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 4,
+ "name": "Dummy",
+ "nameLocations": [
+ "179:5:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3,
+ "src": "179:5:0"
+ },
+ "id": 5,
+ "nodeType": "InheritanceSpecifier",
+ "src": "179:5:0"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 13,
+ "linearizedBaseContracts": [
+ 13,
+ 3
+ ],
+ "name": "ERC165",
+ "nameLocation": "169:6:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "01ffc9a7",
+ "id": 12,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "197:17:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 8,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "interfaceID",
+ "nameLocation": "222:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 12,
+ "src": "215:18:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "215:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "214:20:0"
+ },
+ "returnParameters": {
+ "id": 11,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 10,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 12,
+ "src": "258:4:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 9,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "258:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "257:6:0"
+ },
+ "scope": 13,
+ "src": "188:76:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 100,
+ "src": "159:107:0",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "CollectionHelpersEvents",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 14,
+ "nodeType": "StructuredDocumentation",
+ "src": "268:27:0",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 25,
+ "linearizedBaseContracts": [
+ 25
+ ],
+ "name": "CollectionHelpersEvents",
+ "nameLocation": "305:23:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "5d0de243db1669e3a7056744cd715c625f0c1c348736c2c2d53d0ddebff1a6c7",
+ "id": 20,
+ "name": "CollectionCreated",
+ "nameLocation": "338:17:0",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 19,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 16,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "372:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 20,
+ "src": "356:21:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 15,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "356:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 18,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "collectionId",
+ "nameLocation": "395:12:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 20,
+ "src": "379:28:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 17,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "379:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "355:53:0"
+ },
+ "src": "332:77:0"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "196b128b0e7d555858ba17c2a76be0a94558be342698cd6c02837195e0b0bcbc",
+ "id": 24,
+ "name": "CollectionDestroyed",
+ "nameLocation": "417:19:0",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 23,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 22,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "collectionId",
+ "nameLocation": "453:12:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 24,
+ "src": "437:28:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 21,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "437:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "436:30:0"
+ },
+ "src": "411:56:0"
+ }
+ ],
+ "scope": 100,
+ "src": "295:174:0",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 27,
+ "name": "Dummy",
+ "nameLocations": [
+ "635:5:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 3,
+ "src": "635:5:0"
+ },
+ "id": 28,
+ "nodeType": "InheritanceSpecifier",
+ "src": "635:5:0"
+ },
+ {
+ "baseName": {
+ "id": 29,
+ "name": "ERC165",
+ "nameLocations": [
+ "642:6:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 13,
+ "src": "642:6:0"
+ },
+ "id": 30,
+ "nodeType": "InheritanceSpecifier",
+ "src": "642:6:0"
+ },
+ {
+ "baseName": {
+ "id": 31,
+ "name": "CollectionHelpersEvents",
+ "nameLocations": [
+ "650:23:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 25,
+ "src": "650:23:0"
+ },
+ "id": 32,
+ "nodeType": "InheritanceSpecifier",
+ "src": "650:23:0"
+ }
+ ],
+ "canonicalName": "CollectionHelpers",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 26,
+ "nodeType": "StructuredDocumentation",
+ "src": "471:133:0",
+ "text": "@title Contract, which allows users to operate with collections\n @dev the ERC-165 identifier for this interface is 0x7dea03b1"
+ },
+ "fullyImplemented": false,
+ "id": 99,
+ "linearizedBaseContracts": [
+ 99,
+ 25,
+ 13,
+ 3
+ ],
+ "name": "CollectionHelpers",
+ "nameLocation": "614:17:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 33,
+ "nodeType": "StructuredDocumentation",
+ "src": "677:420:0",
+ "text": "Create an NFT collection\n @param name Name of the collection\n @param description Informative description of the collection\n @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications\n @return address Address of the newly created collection\n @dev EVM selector for this function is: 0x844af658,\n or in textual repr: createNFTCollection(string,string,string)"
+ },
+ "functionSelector": "844af658",
+ "id": 44,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createNFTCollection",
+ "nameLocation": "1108:19:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 40,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 35,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "1145:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 44,
+ "src": "1131:18:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 34,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1131:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 37,
+ "mutability": "mutable",
+ "name": "description",
+ "nameLocation": "1167:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 44,
+ "src": "1153:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 36,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1153:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 39,
+ "mutability": "mutable",
+ "name": "tokenPrefix",
+ "nameLocation": "1196:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 44,
+ "src": "1182:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 38,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1182:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1127:83:0"
+ },
+ "returnParameters": {
+ "id": 43,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 42,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 44,
+ "src": "1237:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 41,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1237:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1236:9:0"
+ },
+ "scope": 99,
+ "src": "1099:147:0",
+ "stateMutability": "payable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 45,
+ "nodeType": "StructuredDocumentation",
+ "src": "1852:123:0",
+ "text": "@dev EVM selector for this function is: 0xab173450,\n or in textual repr: createRFTCollection(string,string,string)"
+ },
+ "functionSelector": "ab173450",
+ "id": 56,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createRFTCollection",
+ "nameLocation": "1986:19:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 52,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 47,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "2023:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 56,
+ "src": "2009:18:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 46,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2009:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 49,
+ "mutability": "mutable",
+ "name": "description",
+ "nameLocation": "2045:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 56,
+ "src": "2031:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 48,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2031:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 51,
+ "mutability": "mutable",
+ "name": "tokenPrefix",
+ "nameLocation": "2074:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 56,
+ "src": "2060:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 50,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2060:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2005:83:0"
+ },
+ "returnParameters": {
+ "id": 55,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 54,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 56,
+ "src": "2115:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 53,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2115:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2114:9:0"
+ },
+ "scope": 99,
+ "src": "1977:147:0",
+ "stateMutability": "payable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 57,
+ "nodeType": "StructuredDocumentation",
+ "src": "2127:128:0",
+ "text": "@dev EVM selector for this function is: 0x7335b79f,\n or in textual repr: createFTCollection(string,uint8,string,string)"
+ },
+ "functionSelector": "7335b79f",
+ "id": 70,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createFTCollection",
+ "nameLocation": "2266:18:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 66,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 59,
+ "mutability": "mutable",
+ "name": "name",
+ "nameLocation": "2302:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 70,
+ "src": "2288:18:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 58,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2288:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 61,
+ "mutability": "mutable",
+ "name": "decimals",
+ "nameLocation": "2316:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 70,
+ "src": "2310:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 60,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2310:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 63,
+ "mutability": "mutable",
+ "name": "description",
+ "nameLocation": "2342:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 70,
+ "src": "2328:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 62,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2328:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 65,
+ "mutability": "mutable",
+ "name": "tokenPrefix",
+ "nameLocation": "2371:11:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 70,
+ "src": "2357:25:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 64,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2357:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2284:101:0"
+ },
+ "returnParameters": {
+ "id": 69,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 68,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 70,
+ "src": "2412:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 67,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2412:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2411:9:0"
+ },
+ "scope": 99,
+ "src": "2257:164:0",
+ "stateMutability": "payable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 71,
+ "nodeType": "StructuredDocumentation",
+ "src": "2424:136:0",
+ "text": "@dev EVM selector for this function is: 0x85624258,\n or in textual repr: makeCollectionERC721MetadataCompatible(address,string)"
+ },
+ "functionSelector": "85624258",
+ "id": 78,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "makeCollectionERC721MetadataCompatible",
+ "nameLocation": "2571:38:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 76,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 73,
+ "mutability": "mutable",
+ "name": "collection",
+ "nameLocation": "2618:10:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "2610:18:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 72,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2610:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 75,
+ "mutability": "mutable",
+ "name": "baseUri",
+ "nameLocation": "2644:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "2630:21:0",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 74,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2630:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2609:43:0"
+ },
+ "returnParameters": {
+ "id": 77,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2661:0:0"
+ },
+ "scope": 99,
+ "src": "2562:100:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 79,
+ "nodeType": "StructuredDocumentation",
+ "src": "2665:108:0",
+ "text": "@dev EVM selector for this function is: 0x564e321f,\n or in textual repr: destroyCollection(address)"
+ },
+ "functionSelector": "564e321f",
+ "id": 84,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "destroyCollection",
+ "nameLocation": "2784:17:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 82,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 81,
+ "mutability": "mutable",
+ "name": "collectionAddress",
+ "nameLocation": "2810:17:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 84,
+ "src": "2802:25:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 80,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2802:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2801:27:0"
+ },
+ "returnParameters": {
+ "id": 83,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2837:0:0"
+ },
+ "scope": 99,
+ "src": "2775:63:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 85,
+ "nodeType": "StructuredDocumentation",
+ "src": "2841:255:0",
+ "text": "Check if a collection exists\n @param collectionAddress Address of the collection in question\n @return bool Does the collection exist?\n @dev EVM selector for this function is: 0xc3de1494,\n or in textual repr: isCollectionExist(address)"
+ },
+ "functionSelector": "c3de1494",
+ "id": 92,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isCollectionExist",
+ "nameLocation": "3107:17:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 88,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 87,
+ "mutability": "mutable",
+ "name": "collectionAddress",
+ "nameLocation": "3133:17:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 92,
+ "src": "3125:25:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 86,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3125:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3124:27:0"
+ },
+ "returnParameters": {
+ "id": 91,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 90,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 92,
+ "src": "3175:4:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 89,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3175:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3174:6:0"
+ },
+ "scope": 99,
+ "src": "3098:83:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 93,
+ "nodeType": "StructuredDocumentation",
+ "src": "3184:105:0",
+ "text": "@dev EVM selector for this function is: 0xd23a7ab1,\n or in textual repr: collectionCreationFee()"
+ },
+ "functionSelector": "d23a7ab1",
+ "id": 98,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionCreationFee",
+ "nameLocation": "3300:21:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 94,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3321:2:0"
+ },
+ "returnParameters": {
+ "id": 97,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 96,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 98,
+ "src": "3347:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 95,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3347:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3346:9:0"
+ },
+ "scope": 99,
+ "src": "3291:65:0",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 100,
+ "src": "604:2754:0",
+ "usedErrors": []
+ }
+ ],
+ "src": "75:3284:0"
+ },
+ "id": 0
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol",
+ "exportedSymbols": {
+ "ContractHelpers": [
+ 282
+ ],
+ "ContractHelpersEvents": [
+ 131
+ ],
+ "Dummy": [
+ 103
+ ],
+ "ERC165": [
+ 113
+ ],
+ "Tuple0": [
+ 287
+ ]
+ },
+ "id": 288,
+ "license": "OTHER",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 101,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "75:31:1"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Dummy",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 102,
+ "nodeType": "StructuredDocumentation",
+ "src": "108:29:1",
+ "text": "@dev common stubs holder"
+ },
+ "fullyImplemented": true,
+ "id": 103,
+ "linearizedBaseContracts": [
+ 103
+ ],
+ "name": "Dummy",
+ "nameLocation": "147:5:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 288,
+ "src": "137:20:1",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 104,
+ "name": "Dummy",
+ "nameLocations": [
+ "179:5:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 103,
+ "src": "179:5:1"
+ },
+ "id": 105,
+ "nodeType": "InheritanceSpecifier",
+ "src": "179:5:1"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 113,
+ "linearizedBaseContracts": [
+ 113,
+ 103
+ ],
+ "name": "ERC165",
+ "nameLocation": "169:6:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "01ffc9a7",
+ "id": 112,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "197:17:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 108,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 107,
+ "mutability": "mutable",
+ "name": "interfaceID",
+ "nameLocation": "222:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 112,
+ "src": "215:18:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 106,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "215:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "214:20:1"
+ },
+ "returnParameters": {
+ "id": 111,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 110,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 112,
+ "src": "258:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 109,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "258:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "257:6:1"
+ },
+ "scope": 113,
+ "src": "188:76:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 288,
+ "src": "159:107:1",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ContractHelpersEvents",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 114,
+ "nodeType": "StructuredDocumentation",
+ "src": "268:27:1",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 131,
+ "linearizedBaseContracts": [
+ 131
+ ],
+ "name": "ContractHelpersEvents",
+ "nameLocation": "305:21:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "1a1c87da5016fa729dc202aa81e8d0a809b34bf7fcb57a99caddc101f4001ad0",
+ "id": 120,
+ "name": "ContractSponsorSet",
+ "nameLocation": "336:18:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 116,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "371:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 120,
+ "src": "355:31:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "355:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 118,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "396:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 120,
+ "src": "388:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 117,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "388:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "354:50:1"
+ },
+ "src": "330:75:1"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "76acd7576df9f9a27aef2632090837bda53ceafa4f2cb770de453088279f5f2b",
+ "id": 126,
+ "name": "ContractSponsorshipConfirmed",
+ "nameLocation": "413:28:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 125,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 122,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "458:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 126,
+ "src": "442:31:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 121,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "442:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 124,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "483:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 126,
+ "src": "475:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 123,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "475:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "441:50:1"
+ },
+ "src": "407:85:1"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "764fe8f3a546c4830e1e035cce906bbd280fc109199af66d7b5f1d7a793bed54",
+ "id": 130,
+ "name": "ContractSponsorRemoved",
+ "nameLocation": "500:22:1",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 129,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 128,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "539:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 130,
+ "src": "523:31:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 127,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "523:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "522:33:1"
+ },
+ "src": "494:62:1"
+ }
+ ],
+ "scope": 288,
+ "src": "295:263:1",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 133,
+ "name": "Dummy",
+ "nameLocations": [
+ "731:5:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 103,
+ "src": "731:5:1"
+ },
+ "id": 134,
+ "nodeType": "InheritanceSpecifier",
+ "src": "731:5:1"
+ },
+ {
+ "baseName": {
+ "id": 135,
+ "name": "ERC165",
+ "nameLocations": [
+ "738:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 113,
+ "src": "738:6:1"
+ },
+ "id": 136,
+ "nodeType": "InheritanceSpecifier",
+ "src": "738:6:1"
+ },
+ {
+ "baseName": {
+ "id": 137,
+ "name": "ContractHelpersEvents",
+ "nameLocations": [
+ "746:21:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 131,
+ "src": "746:21:1"
+ },
+ "id": 138,
+ "nodeType": "InheritanceSpecifier",
+ "src": "746:21:1"
+ }
+ ],
+ "canonicalName": "ContractHelpers",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 132,
+ "nodeType": "StructuredDocumentation",
+ "src": "560:142:1",
+ "text": "@title Magic contract, which allows users to reconfigure other contracts\n @dev the ERC-165 identifier for this interface is 0x30afad04"
+ },
+ "fullyImplemented": false,
+ "id": 282,
+ "linearizedBaseContracts": [
+ 282,
+ 131,
+ 113,
+ 103
+ ],
+ "name": "ContractHelpers",
+ "nameLocation": "712:15:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 139,
+ "nodeType": "StructuredDocumentation",
+ "src": "771:472:1",
+ "text": "Get user, which deployed specified contract\n @dev May return zero address in case if contract is deployed\n using uniquenetwork evm-migration pallet, or using other terms not\n intended by pallet-evm\n @dev Returns zero address if contract does not exists\n @param contractAddress Contract to get owner of\n @return address Owner of contract\n @dev EVM selector for this function is: 0x5152b14c,\n or in textual repr: contractOwner(address)"
+ },
+ "functionSelector": "5152b14c",
+ "id": 146,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contractOwner",
+ "nameLocation": "1254:13:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 142,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 141,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "1276:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 146,
+ "src": "1268:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 140,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1268:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1267:25:1"
+ },
+ "returnParameters": {
+ "id": 145,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 144,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 146,
+ "src": "1316:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 143,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1316:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1315:9:1"
+ },
+ "scope": 282,
+ "src": "1245:80:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 147,
+ "nodeType": "StructuredDocumentation",
+ "src": "1328:267:1",
+ "text": "Set sponsor.\n @param contractAddress Contract for which a sponsor is being established.\n @param sponsor User address who set as pending sponsor.\n @dev EVM selector for this function is: 0xf01fba93,\n or in textual repr: setSponsor(address,address)"
+ },
+ "functionSelector": "f01fba93",
+ "id": 154,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setSponsor",
+ "nameLocation": "1606:10:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 152,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 149,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "1625:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 154,
+ "src": "1617:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 148,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1617:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 151,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "1650:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 154,
+ "src": "1642:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 150,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1642:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1616:42:1"
+ },
+ "returnParameters": {
+ "id": 153,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1667:0:1"
+ },
+ "scope": 282,
+ "src": "1597:71:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 155,
+ "nodeType": "StructuredDocumentation",
+ "src": "1671:235:1",
+ "text": "Set contract as self sponsored.\n @param contractAddress Contract for which a self sponsoring is being enabled.\n @dev EVM selector for this function is: 0x89f7d9ae,\n or in textual repr: selfSponsoredEnable(address)"
+ },
+ "functionSelector": "89f7d9ae",
+ "id": 160,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "selfSponsoredEnable",
+ "nameLocation": "1917:19:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 158,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 157,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "1945:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 160,
+ "src": "1937:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 156,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1937:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1936:25:1"
+ },
+ "returnParameters": {
+ "id": 159,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1970:0:1"
+ },
+ "scope": 282,
+ "src": "1908:63:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 161,
+ "nodeType": "StructuredDocumentation",
+ "src": "1974:209:1",
+ "text": "Remove sponsor.\n @param contractAddress Contract for which a sponsorship is being removed.\n @dev EVM selector for this function is: 0xef784250,\n or in textual repr: removeSponsor(address)"
+ },
+ "functionSelector": "ef784250",
+ "id": 166,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeSponsor",
+ "nameLocation": "2194:13:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 164,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 163,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "2216:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 166,
+ "src": "2208:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 162,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2208:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2207:25:1"
+ },
+ "returnParameters": {
+ "id": 165,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2241:0:1"
+ },
+ "scope": 282,
+ "src": "2185:57:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 167,
+ "nodeType": "StructuredDocumentation",
+ "src": "2245:281:1",
+ "text": "Confirm sponsorship.\n @dev Caller must be same that set via [`setSponsor`].\n @param contractAddress Сontract for which need to confirm sponsorship.\n @dev EVM selector for this function is: 0xabc00001,\n or in textual repr: confirmSponsorship(address)"
+ },
+ "functionSelector": "abc00001",
+ "id": 172,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "confirmSponsorship",
+ "nameLocation": "2537:18:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 170,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 169,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "2564:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 172,
+ "src": "2556:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 168,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2556:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2555:25:1"
+ },
+ "returnParameters": {
+ "id": 171,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2589:0:1"
+ },
+ "scope": 282,
+ "src": "2528:62:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 173,
+ "nodeType": "StructuredDocumentation",
+ "src": "2593:342:1",
+ "text": "Get current sponsor.\n @param contractAddress The contract for which a sponsor is requested.\n @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw.\n @dev EVM selector for this function is: 0x766c4f37,\n or in textual repr: sponsor(address)"
+ },
+ "functionSelector": "766c4f37",
+ "id": 181,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sponsor",
+ "nameLocation": "2946:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 176,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 175,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "2962:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 181,
+ "src": "2954:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 174,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2954:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2953:25:1"
+ },
+ "returnParameters": {
+ "id": 180,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 179,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 181,
+ "src": "3002:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple0_$287_memory_ptr",
+ "typeString": "struct Tuple0"
+ },
+ "typeName": {
+ "id": 178,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 177,
+ "name": "Tuple0",
+ "nameLocations": [
+ "3002:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 287,
+ "src": "3002:6:1"
+ },
+ "referencedDeclaration": 287,
+ "src": "3002:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple0_$287_storage_ptr",
+ "typeString": "struct Tuple0"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3001:15:1"
+ },
+ "scope": 282,
+ "src": "2937:80:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 182,
+ "nodeType": "StructuredDocumentation",
+ "src": "3020:309:1",
+ "text": "Check tat contract has confirmed sponsor.\n @param contractAddress The contract for which the presence of a confirmed sponsor is checked.\n @return **true** if contract has confirmed sponsor.\n @dev EVM selector for this function is: 0x97418603,\n or in textual repr: hasSponsor(address)"
+ },
+ "functionSelector": "97418603",
+ "id": 189,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "hasSponsor",
+ "nameLocation": "3340:10:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 185,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 184,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "3359:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 189,
+ "src": "3351:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 183,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3351:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3350:25:1"
+ },
+ "returnParameters": {
+ "id": 188,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 187,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 189,
+ "src": "3399:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 186,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3399:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3398:6:1"
+ },
+ "scope": 282,
+ "src": "3331:74:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 190,
+ "nodeType": "StructuredDocumentation",
+ "src": "3408:310:1",
+ "text": "Check tat contract has pending sponsor.\n @param contractAddress The contract for which the presence of a pending sponsor is checked.\n @return **true** if contract has pending sponsor.\n @dev EVM selector for this function is: 0x39b9b242,\n or in textual repr: hasPendingSponsor(address)"
+ },
+ "functionSelector": "39b9b242",
+ "id": 197,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "hasPendingSponsor",
+ "nameLocation": "3729:17:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 193,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 192,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "3755:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 197,
+ "src": "3747:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 191,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3747:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3746:25:1"
+ },
+ "returnParameters": {
+ "id": 196,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 195,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 197,
+ "src": "3795:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 194,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3795:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3794:6:1"
+ },
+ "scope": 282,
+ "src": "3720:81:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 198,
+ "nodeType": "StructuredDocumentation",
+ "src": "3804:108:1",
+ "text": "@dev EVM selector for this function is: 0x6027dc61,\n or in textual repr: sponsoringEnabled(address)"
+ },
+ "functionSelector": "6027dc61",
+ "id": 205,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sponsoringEnabled",
+ "nameLocation": "3923:17:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 201,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 200,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "3949:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 205,
+ "src": "3941:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 199,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3941:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3940:25:1"
+ },
+ "returnParameters": {
+ "id": 204,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 203,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 205,
+ "src": "3989:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 202,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3989:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3988:6:1"
+ },
+ "scope": 282,
+ "src": "3914:81:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 206,
+ "nodeType": "StructuredDocumentation",
+ "src": "3998:114:1",
+ "text": "@dev EVM selector for this function is: 0xfde8a560,\n or in textual repr: setSponsoringMode(address,uint8)"
+ },
+ "functionSelector": "fde8a560",
+ "id": 213,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setSponsoringMode",
+ "nameLocation": "4123:17:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 211,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 208,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "4149:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "4141:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 207,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4141:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 210,
+ "mutability": "mutable",
+ "name": "mode",
+ "nameLocation": "4172:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 213,
+ "src": "4166:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 209,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "4166:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4140:37:1"
+ },
+ "returnParameters": {
+ "id": 212,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4186:0:1"
+ },
+ "scope": 282,
+ "src": "4114:73:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 214,
+ "nodeType": "StructuredDocumentation",
+ "src": "4190:299:1",
+ "text": "Get current contract sponsoring rate limit\n @param contractAddress Contract to get sponsoring rate limit of\n @return uint32 Amount of blocks between two sponsored transactions\n @dev EVM selector for this function is: 0xf29694d8,\n or in textual repr: sponsoringRateLimit(address)"
+ },
+ "functionSelector": "f29694d8",
+ "id": 221,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sponsoringRateLimit",
+ "nameLocation": "4500:19:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 217,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 216,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "4528:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 221,
+ "src": "4520:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 215,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4520:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4519:25:1"
+ },
+ "returnParameters": {
+ "id": 220,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 219,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 221,
+ "src": "4568:6:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 218,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4568:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4567:8:1"
+ },
+ "scope": 282,
+ "src": "4491:85:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 222,
+ "nodeType": "StructuredDocumentation",
+ "src": "4579:448:1",
+ "text": "Set contract sponsoring rate limit\n @dev Sponsoring rate limit - is a minimum amount of blocks that should\n pass between two sponsored transactions\n @param contractAddress Contract to change sponsoring rate limit of\n @param rateLimit Target rate limit\n @dev Only contract owner can change this setting\n @dev EVM selector for this function is: 0x77b6c908,\n or in textual repr: setSponsoringRateLimit(address,uint32)"
+ },
+ "functionSelector": "77b6c908",
+ "id": 229,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setSponsoringRateLimit",
+ "nameLocation": "5038:22:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 227,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 224,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "5069:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 229,
+ "src": "5061:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 223,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5061:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 226,
+ "mutability": "mutable",
+ "name": "rateLimit",
+ "nameLocation": "5093:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 229,
+ "src": "5086:16:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 225,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5086:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5060:43:1"
+ },
+ "returnParameters": {
+ "id": 228,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5112:0:1"
+ },
+ "scope": 282,
+ "src": "5029:84:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 230,
+ "nodeType": "StructuredDocumentation",
+ "src": "5116:411:1",
+ "text": "Set contract sponsoring fee limit\n @dev Sponsoring fee limit - is maximum fee that could be spent by\n single transaction\n @param contractAddress Contract to change sponsoring fee limit of\n @param feeLimit Fee limit\n @dev Only contract owner can change this setting\n @dev EVM selector for this function is: 0x03aed665,\n or in textual repr: setSponsoringFeeLimit(address,uint256)"
+ },
+ "functionSelector": "03aed665",
+ "id": 237,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setSponsoringFeeLimit",
+ "nameLocation": "5538:21:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 235,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 232,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "5568:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "5560:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 231,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5560:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 234,
+ "mutability": "mutable",
+ "name": "feeLimit",
+ "nameLocation": "5593:8:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "5585:16:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 233,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5585:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5559:43:1"
+ },
+ "returnParameters": {
+ "id": 236,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5611:0:1"
+ },
+ "scope": 282,
+ "src": "5529:83:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 238,
+ "nodeType": "StructuredDocumentation",
+ "src": "5615:315:1",
+ "text": "Get current contract sponsoring fee limit\n @param contractAddress Contract to get sponsoring fee limit of\n @return uint256 Maximum amount of fee that could be spent by single\n transaction\n @dev EVM selector for this function is: 0x75b73606,\n or in textual repr: sponsoringFeeLimit(address)"
+ },
+ "functionSelector": "75b73606",
+ "id": 245,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sponsoringFeeLimit",
+ "nameLocation": "5941:18:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 241,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 240,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "5968:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 245,
+ "src": "5960:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 239,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5960:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5959:25:1"
+ },
+ "returnParameters": {
+ "id": 244,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 243,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 245,
+ "src": "6008:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 242,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6008:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6007:9:1"
+ },
+ "scope": 282,
+ "src": "5932:85:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 246,
+ "nodeType": "StructuredDocumentation",
+ "src": "6020:368:1",
+ "text": "Is specified user present in contract allow list\n @dev Contract owner always implicitly included\n @param contractAddress Contract to check allowlist of\n @param user User to check\n @return bool Is specified users exists in contract allowlist\n @dev EVM selector for this function is: 0x5c658165,\n or in textual repr: allowed(address,address)"
+ },
+ "functionSelector": "5c658165",
+ "id": 255,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowed",
+ "nameLocation": "6399:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 251,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 248,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "6415:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 255,
+ "src": "6407:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 247,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6407:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 250,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "6440:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 255,
+ "src": "6432:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 249,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6432:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6406:39:1"
+ },
+ "returnParameters": {
+ "id": 254,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 253,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 255,
+ "src": "6469:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 252,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "6469:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6468:6:1"
+ },
+ "scope": 282,
+ "src": "6390:85:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 256,
+ "nodeType": "StructuredDocumentation",
+ "src": "6478:452:1",
+ "text": "Toggle user presence in contract allowlist\n @param contractAddress Contract to change allowlist of\n @param user Which user presence should be toggled\n @param isAllowed `true` if user should be allowed to be sponsored\n or call this contract, `false` otherwise\n @dev Only contract owner can change this setting\n @dev EVM selector for this function is: 0x4706cc1c,\n or in textual repr: toggleAllowed(address,address,bool)"
+ },
+ "functionSelector": "4706cc1c",
+ "id": 265,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toggleAllowed",
+ "nameLocation": "6941:13:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 263,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 258,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "6966:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 265,
+ "src": "6958:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 257,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6958:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 260,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "6993:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 265,
+ "src": "6985:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 259,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6985:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 262,
+ "mutability": "mutable",
+ "name": "isAllowed",
+ "nameLocation": "7006:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 265,
+ "src": "7001:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 261,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7001:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6954:64:1"
+ },
+ "returnParameters": {
+ "id": 264,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7027:0:1"
+ },
+ "scope": 282,
+ "src": "6932:96:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 266,
+ "nodeType": "StructuredDocumentation",
+ "src": "7031:554:1",
+ "text": "Is this contract has allowlist access enabled\n @dev Allowlist always can have users, and it is used for two purposes:\n in case of allowlist sponsoring mode, users will be sponsored if they exist in allowlist\n in case of allowlist access enabled, only users from allowlist may call this contract\n @param contractAddress Contract to get allowlist access of\n @return bool Is specified contract has allowlist access enabled\n @dev EVM selector for this function is: 0xc772ef6c,\n or in textual repr: allowlistEnabled(address)"
+ },
+ "functionSelector": "c772ef6c",
+ "id": 273,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowlistEnabled",
+ "nameLocation": "7596:16:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 269,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 268,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "7621:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 273,
+ "src": "7613:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 267,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7613:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7612:25:1"
+ },
+ "returnParameters": {
+ "id": 272,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 271,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 273,
+ "src": "7661:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 270,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7661:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7660:6:1"
+ },
+ "scope": 282,
+ "src": "7587:80:1",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 274,
+ "nodeType": "StructuredDocumentation",
+ "src": "7670:275:1",
+ "text": "Toggle contract allowlist access\n @param contractAddress Contract to change allowlist access of\n @param enabled Should allowlist access to be enabled?\n @dev EVM selector for this function is: 0x36de20f5,\n or in textual repr: toggleAllowlist(address,bool)"
+ },
+ "functionSelector": "36de20f5",
+ "id": 281,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "toggleAllowlist",
+ "nameLocation": "7956:15:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 279,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 276,
+ "mutability": "mutable",
+ "name": "contractAddress",
+ "nameLocation": "7980:15:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 281,
+ "src": "7972:23:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 275,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7972:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 278,
+ "mutability": "mutable",
+ "name": "enabled",
+ "nameLocation": "8002:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 281,
+ "src": "7997:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 277,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7997:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7971:39:1"
+ },
+ "returnParameters": {
+ "id": 280,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8019:0:1"
+ },
+ "scope": 282,
+ "src": "7947:73:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 288,
+ "src": "702:7320:1",
+ "usedErrors": []
+ },
+ {
+ "canonicalName": "Tuple0",
+ "id": 287,
+ "members": [
+ {
+ "constant": false,
+ "id": 284,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "8075:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 287,
+ "src": "8067:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 283,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8067:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 286,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "8093:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 287,
+ "src": "8085:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 285,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8085:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple0",
+ "nameLocation": "8057:6:1",
+ "nodeType": "StructDefinition",
+ "scope": 288,
+ "src": "8050:53:1",
+ "visibility": "public"
+ }
+ ],
+ "src": "75:8029:1"
+ },
+ "id": 1
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol",
+ "exportedSymbols": {
+ "Collection": [
+ 605
+ ],
+ "Dummy": [
+ 291
+ ],
+ "ERC165": [
+ 301
+ ],
+ "ERC721": [
+ 909
+ ],
+ "ERC721Burnable": [
+ 646
+ ],
+ "ERC721Enumerable": [
+ 793
+ ],
+ "ERC721Events": [
+ 819
+ ],
+ "ERC721Metadata": [
+ 634
+ ],
+ "ERC721UniqueExtensions": [
+ 758
+ ],
+ "ERC721UniqueMintable": [
+ 688
+ ],
+ "ERC721UniqueMintableEvents": [
+ 650
+ ],
+ "EthCrossAccount": [
+ 610
+ ],
+ "TokenProperties": [
+ 357
+ ],
+ "Tuple10": [
+ 763
+ ],
+ "Tuple21": [
+ 620
+ ],
+ "Tuple24": [
+ 615
+ ],
+ "UniqueNFT": [
+ 930
+ ]
+ },
+ "id": 931,
+ "license": "OTHER",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 289,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "75:31:2"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Dummy",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 290,
+ "nodeType": "StructuredDocumentation",
+ "src": "108:29:2",
+ "text": "@dev common stubs holder"
+ },
+ "fullyImplemented": true,
+ "id": 291,
+ "linearizedBaseContracts": [
+ 291
+ ],
+ "name": "Dummy",
+ "nameLocation": "147:5:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 931,
+ "src": "137:20:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 292,
+ "name": "Dummy",
+ "nameLocations": [
+ "179:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "179:5:2"
+ },
+ "id": 293,
+ "nodeType": "InheritanceSpecifier",
+ "src": "179:5:2"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 301,
+ "linearizedBaseContracts": [
+ 301,
+ 291
+ ],
+ "name": "ERC165",
+ "nameLocation": "169:6:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "01ffc9a7",
+ "id": 300,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "197:17:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 296,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 295,
+ "mutability": "mutable",
+ "name": "interfaceID",
+ "nameLocation": "222:11:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 300,
+ "src": "215:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 294,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "215:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "214:20:2"
+ },
+ "returnParameters": {
+ "id": 299,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 298,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 300,
+ "src": "258:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 297,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "258:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "257:6:2"
+ },
+ "scope": 301,
+ "src": "188:76:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "159:107:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 303,
+ "name": "Dummy",
+ "nameLocations": [
+ "470:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "470:5:2"
+ },
+ "id": 304,
+ "nodeType": "InheritanceSpecifier",
+ "src": "470:5:2"
+ },
+ {
+ "baseName": {
+ "id": 305,
+ "name": "ERC165",
+ "nameLocations": [
+ "477:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "477:6:2"
+ },
+ "id": 306,
+ "nodeType": "InheritanceSpecifier",
+ "src": "477:6:2"
+ }
+ ],
+ "canonicalName": "TokenProperties",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 302,
+ "nodeType": "StructuredDocumentation",
+ "src": "268:173:2",
+ "text": "@title A contract that allows to set and delete token properties and change token property permissions.\n @dev the ERC-165 identifier for this interface is 0x55dba919"
+ },
+ "fullyImplemented": false,
+ "id": 357,
+ "linearizedBaseContracts": [
+ 357,
+ 301,
+ 291
+ ],
+ "name": "TokenProperties",
+ "nameLocation": "451:15:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 307,
+ "nodeType": "StructuredDocumentation",
+ "src": "487:537:2",
+ "text": "@notice Set permissions for token property.\n @dev Throws error if `msg.sender` is not admin or owner of the collection.\n @param key Property key.\n @param isMutable Permission to mutate property.\n @param collectionAdmin Permission to mutate property by collection admin if property is mutable.\n @param tokenOwner Permission to mutate property by token owner if property is mutable.\n @dev EVM selector for this function is: 0x222d97fa,\n or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)"
+ },
+ "functionSelector": "222d97fa",
+ "id": 318,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setTokenPropertyPermission",
+ "nameLocation": "1035:26:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 316,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "1079:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 318,
+ "src": "1065:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1065:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 311,
+ "mutability": "mutable",
+ "name": "isMutable",
+ "nameLocation": "1091:9:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 318,
+ "src": "1086:14:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 310,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1086:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 313,
+ "mutability": "mutable",
+ "name": "collectionAdmin",
+ "nameLocation": "1109:15:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 318,
+ "src": "1104:20:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 312,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1104:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 315,
+ "mutability": "mutable",
+ "name": "tokenOwner",
+ "nameLocation": "1133:10:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 318,
+ "src": "1128:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 314,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1128:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1061:85:2"
+ },
+ "returnParameters": {
+ "id": 317,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1155:0:2"
+ },
+ "scope": 357,
+ "src": "1026:130:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 319,
+ "nodeType": "StructuredDocumentation",
+ "src": "1159:334:2",
+ "text": "@notice Set token property value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param key Property key.\n @param value Property value.\n @dev EVM selector for this function is: 0x1752d67b,\n or in textual repr: setProperty(uint256,string,bytes)"
+ },
+ "functionSelector": "1752d67b",
+ "id": 328,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setProperty",
+ "nameLocation": "1504:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 326,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 321,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "1527:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 328,
+ "src": "1519:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 320,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1519:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 323,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "1552:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 328,
+ "src": "1538:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 322,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1538:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 325,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1572:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 328,
+ "src": "1559:18:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 324,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1559:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1515:65:2"
+ },
+ "returnParameters": {
+ "id": 327,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1589:0:2"
+ },
+ "scope": 357,
+ "src": "1495:95:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 329,
+ "nodeType": "StructuredDocumentation",
+ "src": "1593:321:2",
+ "text": "@notice Set token properties value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param properties settable properties\n @dev EVM selector for this function is: 0x14ed3a6e,\n or in textual repr: setProperties(uint256,(string,bytes)[])"
+ },
+ "functionSelector": "14ed3a6e",
+ "id": 338,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setProperties",
+ "nameLocation": "1925:13:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 336,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 331,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "1947:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 338,
+ "src": "1939:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 330,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1939:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 335,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "1973:10:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 338,
+ "src": "1956:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple21[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 333,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 332,
+ "name": "Tuple21",
+ "nameLocations": [
+ "1956:7:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 620,
+ "src": "1956:7:2"
+ },
+ "referencedDeclaration": 620,
+ "src": "1956:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple21_$620_storage_ptr",
+ "typeString": "struct Tuple21"
+ }
+ },
+ "id": 334,
+ "nodeType": "ArrayTypeName",
+ "src": "1956:9:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple21[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1938:46:2"
+ },
+ "returnParameters": {
+ "id": 337,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1993:0:2"
+ },
+ "scope": 357,
+ "src": "1916:78:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 339,
+ "nodeType": "StructuredDocumentation",
+ "src": "1997:300:2",
+ "text": "@notice Delete token property value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param key Property key.\n @dev EVM selector for this function is: 0x066111d1,\n or in textual repr: deleteProperty(uint256,string)"
+ },
+ "functionSelector": "066111d1",
+ "id": 346,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteProperty",
+ "nameLocation": "2308:14:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 344,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 341,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2331:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "2323:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 340,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2323:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 343,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "2354:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 346,
+ "src": "2340:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 342,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2340:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2322:36:2"
+ },
+ "returnParameters": {
+ "id": 345,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2367:0:2"
+ },
+ "scope": 357,
+ "src": "2299:69:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 347,
+ "nodeType": "StructuredDocumentation",
+ "src": "2371:286:2",
+ "text": "@notice Get token property value.\n @dev Throws error if key not found\n @param tokenId ID of the token.\n @param key Property key.\n @return Property value bytes\n @dev EVM selector for this function is: 0x7228c327,\n or in textual repr: property(uint256,string)"
+ },
+ "functionSelector": "7228c327",
+ "id": 356,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "property",
+ "nameLocation": "2668:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 352,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 349,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2685:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 356,
+ "src": "2677:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 348,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2677:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 351,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "2708:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 356,
+ "src": "2694:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 350,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2694:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2676:36:2"
+ },
+ "returnParameters": {
+ "id": 355,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 354,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 356,
+ "src": "2736:12:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 353,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2736:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2735:14:2"
+ },
+ "scope": 357,
+ "src": "2659:91:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "441:2311:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 359,
+ "name": "Dummy",
+ "nameLocations": [
+ "2907:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "2907:5:2"
+ },
+ "id": 360,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2907:5:2"
+ },
+ {
+ "baseName": {
+ "id": 361,
+ "name": "ERC165",
+ "nameLocations": [
+ "2914:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "2914:6:2"
+ },
+ "id": 362,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2914:6:2"
+ }
+ ],
+ "canonicalName": "Collection",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 358,
+ "nodeType": "StructuredDocumentation",
+ "src": "2754:129:2",
+ "text": "@title A contract that allows you to work with collections.\n @dev the ERC-165 identifier for this interface is 0xb3152af3"
+ },
+ "fullyImplemented": false,
+ "id": 605,
+ "linearizedBaseContracts": [
+ 605,
+ 301,
+ 291
+ ],
+ "name": "Collection",
+ "nameLocation": "2893:10:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 363,
+ "nodeType": "StructuredDocumentation",
+ "src": "2924:215:2",
+ "text": "Set collection property.\n @param key Property key.\n @param value Propery value.\n @dev EVM selector for this function is: 0x2f073f66,\n or in textual repr: setCollectionProperty(string,bytes)"
+ },
+ "functionSelector": "2f073f66",
+ "id": 370,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionProperty",
+ "nameLocation": "3150:21:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 368,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 365,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3186:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 370,
+ "src": "3172:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 364,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3172:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 367,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3204:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 370,
+ "src": "3191:18:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 366,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3191:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3171:39:2"
+ },
+ "returnParameters": {
+ "id": 369,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3219:0:2"
+ },
+ "scope": 605,
+ "src": "3141:79:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 371,
+ "nodeType": "StructuredDocumentation",
+ "src": "3223:220:2",
+ "text": "Set collection properties.\n @param properties Vector of properties key/value pair.\n @dev EVM selector for this function is: 0x50b26b2a,\n or in textual repr: setCollectionProperties((string,bytes)[])"
+ },
+ "functionSelector": "50b26b2a",
+ "id": 378,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionProperties",
+ "nameLocation": "3454:23:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 376,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 375,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "3495:10:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 378,
+ "src": "3478:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple21[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 373,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 372,
+ "name": "Tuple21",
+ "nameLocations": [
+ "3478:7:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 620,
+ "src": "3478:7:2"
+ },
+ "referencedDeclaration": 620,
+ "src": "3478:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple21_$620_storage_ptr",
+ "typeString": "struct Tuple21"
+ }
+ },
+ "id": 374,
+ "nodeType": "ArrayTypeName",
+ "src": "3478:9:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple21[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3477:29:2"
+ },
+ "returnParameters": {
+ "id": 377,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3515:0:2"
+ },
+ "scope": 605,
+ "src": "3445:71:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 379,
+ "nodeType": "StructuredDocumentation",
+ "src": "3519:182:2",
+ "text": "Delete collection property.\n @param key Property key.\n @dev EVM selector for this function is: 0x7b7debce,\n or in textual repr: deleteCollectionProperty(string)"
+ },
+ "functionSelector": "7b7debce",
+ "id": 384,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteCollectionProperty",
+ "nameLocation": "3712:24:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 382,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 381,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3751:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 384,
+ "src": "3737:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 380,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3737:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3736:19:2"
+ },
+ "returnParameters": {
+ "id": 383,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3764:0:2"
+ },
+ "scope": 605,
+ "src": "3703:62:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 385,
+ "nodeType": "StructuredDocumentation",
+ "src": "3768:192:2",
+ "text": "Delete collection properties.\n @param keys Properties keys.\n @dev EVM selector for this function is: 0xee206ee3,\n or in textual repr: deleteCollectionProperties(string[])"
+ },
+ "functionSelector": "ee206ee3",
+ "id": 391,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteCollectionProperties",
+ "nameLocation": "3971:26:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 388,
+ "mutability": "mutable",
+ "name": "keys",
+ "nameLocation": "4014:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 391,
+ "src": "3998:20:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 386,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3998:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 387,
+ "nodeType": "ArrayTypeName",
+ "src": "3998:8:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3997:22:2"
+ },
+ "returnParameters": {
+ "id": 390,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4028:0:2"
+ },
+ "scope": 605,
+ "src": "3962:67:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 392,
+ "nodeType": "StructuredDocumentation",
+ "src": "4032:277:2",
+ "text": "Get collection property.\n @dev Throws error if key not found.\n @param key Property key.\n @return bytes The property corresponding to the key.\n @dev EVM selector for this function is: 0xcf24fd6d,\n or in textual repr: collectionProperty(string)"
+ },
+ "functionSelector": "cf24fd6d",
+ "id": 399,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionProperty",
+ "nameLocation": "4320:18:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 395,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 394,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4353:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 399,
+ "src": "4339:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 393,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4339:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4338:19:2"
+ },
+ "returnParameters": {
+ "id": 398,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 397,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 399,
+ "src": "4381:12:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 396,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4381:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4380:14:2"
+ },
+ "scope": 605,
+ "src": "4311:84:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 400,
+ "nodeType": "StructuredDocumentation",
+ "src": "4398:265:2",
+ "text": "Get collection properties.\n @param keys Properties keys. Empty keys for all propertyes.\n @return Vector of properties key/value pairs.\n @dev EVM selector for this function is: 0x285fb8e6,\n or in textual repr: collectionProperties(string[])"
+ },
+ "functionSelector": "285fb8e6",
+ "id": 410,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionProperties",
+ "nameLocation": "4674:20:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 404,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 403,
+ "mutability": "mutable",
+ "name": "keys",
+ "nameLocation": "4711:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 410,
+ "src": "4695:20:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 401,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4695:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 402,
+ "nodeType": "ArrayTypeName",
+ "src": "4695:8:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4694:22:2"
+ },
+ "returnParameters": {
+ "id": 409,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 408,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 410,
+ "src": "4740:16:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple21[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 406,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 405,
+ "name": "Tuple21",
+ "nameLocations": [
+ "4740:7:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 620,
+ "src": "4740:7:2"
+ },
+ "referencedDeclaration": 620,
+ "src": "4740:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple21_$620_storage_ptr",
+ "typeString": "struct Tuple21"
+ }
+ },
+ "id": 407,
+ "nodeType": "ArrayTypeName",
+ "src": "4740:9:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple21[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4739:18:2"
+ },
+ "scope": 605,
+ "src": "4665:93:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 411,
+ "nodeType": "StructuredDocumentation",
+ "src": "4761:370:2",
+ "text": "Set the sponsor of the collection.\n @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.\n @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.\n @dev EVM selector for this function is: 0x7623402e,\n or in textual repr: setCollectionSponsor(address)"
+ },
+ "functionSelector": "7623402e",
+ "id": 416,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionSponsor",
+ "nameLocation": "5142:20:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 414,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 413,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "5171:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 416,
+ "src": "5163:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 412,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5163:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5162:17:2"
+ },
+ "returnParameters": {
+ "id": 415,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5188:0:2"
+ },
+ "scope": 605,
+ "src": "5133:56:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 417,
+ "nodeType": "StructuredDocumentation",
+ "src": "5192:399:2",
+ "text": "Set the sponsor of the collection.\n @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.\n @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\n @dev EVM selector for this function is: 0x84a1d5a8,\n or in textual repr: setCollectionSponsorCross((address,uint256))"
+ },
+ "functionSelector": "84a1d5a8",
+ "id": 423,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionSponsorCross",
+ "nameLocation": "5602:25:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 421,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 420,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "5651:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 423,
+ "src": "5628:30:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 419,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 418,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "5628:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "5628:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "5628:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5627:32:2"
+ },
+ "returnParameters": {
+ "id": 422,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5668:0:2"
+ },
+ "scope": 605,
+ "src": "5593:76:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 424,
+ "nodeType": "StructuredDocumentation",
+ "src": "5672:152:2",
+ "text": "Whether there is a pending sponsor.\n @dev EVM selector for this function is: 0x058ac185,\n or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "functionSelector": "058ac185",
+ "id": 429,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "hasCollectionPendingSponsor",
+ "nameLocation": "5835:27:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 425,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5862:2:2"
+ },
+ "returnParameters": {
+ "id": 428,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 427,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 429,
+ "src": "5888:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 426,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5888:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5887:6:2"
+ },
+ "scope": 605,
+ "src": "5826:68:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 430,
+ "nodeType": "StructuredDocumentation",
+ "src": "5897:256:2",
+ "text": "Collection sponsorship confirmation.\n @dev After setting the sponsor for the collection, it must be confirmed with this function.\n @dev EVM selector for this function is: 0x3c50e97a,\n or in textual repr: confirmCollectionSponsorship()"
+ },
+ "functionSelector": "3c50e97a",
+ "id": 433,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "confirmCollectionSponsorship",
+ "nameLocation": "6164:28:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 431,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6192:2:2"
+ },
+ "returnParameters": {
+ "id": 432,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6203:0:2"
+ },
+ "scope": 605,
+ "src": "6155:49:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 434,
+ "nodeType": "StructuredDocumentation",
+ "src": "6207:139:2",
+ "text": "Remove collection sponsor.\n @dev EVM selector for this function is: 0x6e0326a3,\n or in textual repr: removeCollectionSponsor()"
+ },
+ "functionSelector": "6e0326a3",
+ "id": 437,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionSponsor",
+ "nameLocation": "6357:23:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 435,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6380:2:2"
+ },
+ "returnParameters": {
+ "id": 436,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6391:0:2"
+ },
+ "scope": 605,
+ "src": "6348:44:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 438,
+ "nodeType": "StructuredDocumentation",
+ "src": "6395:270:2",
+ "text": "Get current sponsor.\n @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw.\n @dev EVM selector for this function is: 0x6ec0a9f1,\n or in textual repr: collectionSponsor()"
+ },
+ "functionSelector": "6ec0a9f1",
+ "id": 444,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionSponsor",
+ "nameLocation": "6676:17:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 439,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6693:2:2"
+ },
+ "returnParameters": {
+ "id": 443,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 442,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 444,
+ "src": "6719:14:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple24_$615_memory_ptr",
+ "typeString": "struct Tuple24"
+ },
+ "typeName": {
+ "id": 441,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 440,
+ "name": "Tuple24",
+ "nameLocations": [
+ "6719:7:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 615,
+ "src": "6719:7:2"
+ },
+ "referencedDeclaration": 615,
+ "src": "6719:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple24_$615_storage_ptr",
+ "typeString": "struct Tuple24"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6718:16:2"
+ },
+ "scope": 605,
+ "src": "6667:68:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 445,
+ "nodeType": "StructuredDocumentation",
+ "src": "6738:459:2",
+ "text": "Set limits for the collection.\n @dev Throws error if limit not found.\n @param limit Name of the limit. Valid names:\n \t\"accountTokenOwnershipLimit\",\n \t\"sponsoredDataSize\",\n \t\"sponsoredDataRateLimit\",\n \t\"tokenLimit\",\n \t\"sponsorTransferTimeout\",\n \t\"sponsorApproveTimeout\"\n @param value Value of the limit.\n @dev EVM selector for this function is: 0x6a3841db,\n or in textual repr: setCollectionLimit(string,uint32)"
+ },
+ "functionSelector": "6a3841db",
+ "id": 452,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionLimit",
+ "nameLocation": "7208:18:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 450,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 447,
+ "mutability": "mutable",
+ "name": "limit",
+ "nameLocation": "7241:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 452,
+ "src": "7227:19:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 446,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7227:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 449,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7255:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 452,
+ "src": "7248:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 448,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7248:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7226:35:2"
+ },
+ "returnParameters": {
+ "id": 451,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7270:0:2"
+ },
+ "scope": 605,
+ "src": "7199:72:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 453,
+ "nodeType": "StructuredDocumentation",
+ "src": "7274:356:2",
+ "text": "Set limits for the collection.\n @dev Throws error if limit not found.\n @param limit Name of the limit. Valid names:\n \t\"ownerCanTransfer\",\n \t\"ownerCanDestroy\",\n \t\"transfersEnabled\"\n @param value Value of the limit.\n @dev EVM selector for this function is: 0x993b7fba,\n or in textual repr: setCollectionLimit(string,bool)"
+ },
+ "functionSelector": "993b7fba",
+ "id": 460,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionLimit",
+ "nameLocation": "7641:18:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 458,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 455,
+ "mutability": "mutable",
+ "name": "limit",
+ "nameLocation": "7674:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 460,
+ "src": "7660:19:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 454,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7660:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 457,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7686:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 460,
+ "src": "7681:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 456,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7681:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7659:33:2"
+ },
+ "returnParameters": {
+ "id": 459,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7701:0:2"
+ },
+ "scope": 605,
+ "src": "7632:70:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 461,
+ "nodeType": "StructuredDocumentation",
+ "src": "7705:126:2",
+ "text": "Get contract address.\n @dev EVM selector for this function is: 0xf6b4dfb4,\n or in textual repr: contractAddress()"
+ },
+ "functionSelector": "f6b4dfb4",
+ "id": 466,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contractAddress",
+ "nameLocation": "7842:15:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 462,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7857:2:2"
+ },
+ "returnParameters": {
+ "id": 465,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 464,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 466,
+ "src": "7883:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 463,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7883:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7882:9:2"
+ },
+ "scope": 605,
+ "src": "7833:59:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 467,
+ "nodeType": "StructuredDocumentation",
+ "src": "7895:209:2",
+ "text": "Add collection admin.\n @param newAdmin Cross account administrator address.\n @dev EVM selector for this function is: 0x859aa7d6,\n or in textual repr: addCollectionAdminCross((address,uint256))"
+ },
+ "functionSelector": "859aa7d6",
+ "id": 473,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addCollectionAdminCross",
+ "nameLocation": "8115:23:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 471,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 470,
+ "mutability": "mutable",
+ "name": "newAdmin",
+ "nameLocation": "8162:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 473,
+ "src": "8139:31:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 469,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 468,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "8139:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "8139:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "8139:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8138:33:2"
+ },
+ "returnParameters": {
+ "id": 472,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8180:0:2"
+ },
+ "scope": 605,
+ "src": "8106:75:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 474,
+ "nodeType": "StructuredDocumentation",
+ "src": "8184:212:2",
+ "text": "Remove collection admin.\n @param admin Cross account administrator address.\n @dev EVM selector for this function is: 0x6c0cd173,\n or in textual repr: removeCollectionAdminCross((address,uint256))"
+ },
+ "functionSelector": "6c0cd173",
+ "id": 480,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionAdminCross",
+ "nameLocation": "8407:26:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 478,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 477,
+ "mutability": "mutable",
+ "name": "admin",
+ "nameLocation": "8457:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 480,
+ "src": "8434:28:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 476,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 475,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "8434:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "8434:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "8434:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8433:30:2"
+ },
+ "returnParameters": {
+ "id": 479,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8472:0:2"
+ },
+ "scope": 605,
+ "src": "8398:75:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 481,
+ "nodeType": "StructuredDocumentation",
+ "src": "8476:193:2",
+ "text": "Add collection admin.\n @param newAdmin Address of the added administrator.\n @dev EVM selector for this function is: 0x92e462c7,\n or in textual repr: addCollectionAdmin(address)"
+ },
+ "functionSelector": "92e462c7",
+ "id": 486,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addCollectionAdmin",
+ "nameLocation": "8680:18:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 484,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 483,
+ "mutability": "mutable",
+ "name": "newAdmin",
+ "nameLocation": "8707:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 486,
+ "src": "8699:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 482,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8699:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8698:18:2"
+ },
+ "returnParameters": {
+ "id": 485,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8725:0:2"
+ },
+ "scope": 605,
+ "src": "8671:55:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 487,
+ "nodeType": "StructuredDocumentation",
+ "src": "8729:203:2",
+ "text": "Remove collection admin.\n @param admin Address of the removed administrator.\n @dev EVM selector for this function is: 0xfafd7b42,\n or in textual repr: removeCollectionAdmin(address)"
+ },
+ "functionSelector": "fafd7b42",
+ "id": 492,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionAdmin",
+ "nameLocation": "8943:21:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 490,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 489,
+ "mutability": "mutable",
+ "name": "admin",
+ "nameLocation": "8973:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 492,
+ "src": "8965:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 488,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8965:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8964:15:2"
+ },
+ "returnParameters": {
+ "id": 491,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8988:0:2"
+ },
+ "scope": 605,
+ "src": "8934:55:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 493,
+ "nodeType": "StructuredDocumentation",
+ "src": "8992:251:2",
+ "text": "Toggle accessibility of collection nesting.\n @param enable If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\n @dev EVM selector for this function is: 0x112d4586,\n or in textual repr: setCollectionNesting(bool)"
+ },
+ "functionSelector": "112d4586",
+ "id": 498,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionNesting",
+ "nameLocation": "9254:20:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 496,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 495,
+ "mutability": "mutable",
+ "name": "enable",
+ "nameLocation": "9280:6:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 498,
+ "src": "9275:11:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 494,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9275:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9274:13:2"
+ },
+ "returnParameters": {
+ "id": 497,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9296:0:2"
+ },
+ "scope": 605,
+ "src": "9245:52:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 499,
+ "nodeType": "StructuredDocumentation",
+ "src": "9300:367:2",
+ "text": "Toggle accessibility of collection nesting.\n @param enable If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\n @param collections Addresses of collections that will be available for nesting.\n @dev EVM selector for this function is: 0x64872396,\n or in textual repr: setCollectionNesting(bool,address[])"
+ },
+ "functionSelector": "64872396",
+ "id": 507,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionNesting",
+ "nameLocation": "9678:20:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 505,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 501,
+ "mutability": "mutable",
+ "name": "enable",
+ "nameLocation": "9704:6:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 507,
+ "src": "9699:11:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 500,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9699:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 504,
+ "mutability": "mutable",
+ "name": "collections",
+ "nameLocation": "9729:11:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 507,
+ "src": "9712:28:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 502,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9712:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 503,
+ "nodeType": "ArrayTypeName",
+ "src": "9712:9:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9698:43:2"
+ },
+ "returnParameters": {
+ "id": 506,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9750:0:2"
+ },
+ "scope": 605,
+ "src": "9669:82:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 508,
+ "nodeType": "StructuredDocumentation",
+ "src": "9754:217:2",
+ "text": "Set the collection access method.\n @param mode Access mode\n \t0 for Normal\n \t1 for AllowList\n @dev EVM selector for this function is: 0x41835d4c,\n or in textual repr: setCollectionAccess(uint8)"
+ },
+ "functionSelector": "41835d4c",
+ "id": 513,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionAccess",
+ "nameLocation": "9982:19:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 511,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 510,
+ "mutability": "mutable",
+ "name": "mode",
+ "nameLocation": "10008:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 513,
+ "src": "10002:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 509,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "10002:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10001:12:2"
+ },
+ "returnParameters": {
+ "id": 512,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10022:0:2"
+ },
+ "scope": 605,
+ "src": "9973:50:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 514,
+ "nodeType": "StructuredDocumentation",
+ "src": "10026:201:2",
+ "text": "Checks that user allowed to operate with collection.\n @param user User address to check.\n @dev EVM selector for this function is: 0xd63a8e11,\n or in textual repr: allowed(address)"
+ },
+ "functionSelector": "d63a8e11",
+ "id": 521,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowed",
+ "nameLocation": "10238:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 517,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 516,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10254:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 521,
+ "src": "10246:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 515,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10246:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10245:14:2"
+ },
+ "returnParameters": {
+ "id": 520,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 519,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 521,
+ "src": "10283:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 518,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "10283:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10282:6:2"
+ },
+ "scope": 605,
+ "src": "10229:60:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 522,
+ "nodeType": "StructuredDocumentation",
+ "src": "10292:203:2",
+ "text": "Add the user to the allowed list.\n @param user Address of a trusted user.\n @dev EVM selector for this function is: 0x67844fe6,\n or in textual repr: addToCollectionAllowList(address)"
+ },
+ "functionSelector": "67844fe6",
+ "id": 527,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToCollectionAllowList",
+ "nameLocation": "10506:24:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 525,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 524,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10539:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 527,
+ "src": "10531:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 523,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10531:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10530:14:2"
+ },
+ "returnParameters": {
+ "id": 526,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10553:0:2"
+ },
+ "scope": 605,
+ "src": "10497:57:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 528,
+ "nodeType": "StructuredDocumentation",
+ "src": "10557:211:2",
+ "text": "Add user to allowed list.\n @param user User cross account address.\n @dev EVM selector for this function is: 0xa0184a3a,\n or in textual repr: addToCollectionAllowListCross((address,uint256))"
+ },
+ "functionSelector": "a0184a3a",
+ "id": 534,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToCollectionAllowListCross",
+ "nameLocation": "10779:29:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 532,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10832:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 534,
+ "src": "10809:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 530,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 529,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "10809:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "10809:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "10809:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10808:29:2"
+ },
+ "returnParameters": {
+ "id": 533,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10846:0:2"
+ },
+ "scope": 605,
+ "src": "10770:77:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 535,
+ "nodeType": "StructuredDocumentation",
+ "src": "10850:213:2",
+ "text": "Remove the user from the allowed list.\n @param user Address of a removed user.\n @dev EVM selector for this function is: 0x85c51acb,\n or in textual repr: removeFromCollectionAllowList(address)"
+ },
+ "functionSelector": "85c51acb",
+ "id": 540,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromCollectionAllowList",
+ "nameLocation": "11074:29:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 538,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 537,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11112:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 540,
+ "src": "11104:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 536,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11104:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11103:14:2"
+ },
+ "returnParameters": {
+ "id": 539,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11126:0:2"
+ },
+ "scope": 605,
+ "src": "11065:62:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 541,
+ "nodeType": "StructuredDocumentation",
+ "src": "11130:221:2",
+ "text": "Remove user from allowed list.\n @param user User cross account address.\n @dev EVM selector for this function is: 0x09ba452a,\n or in textual repr: removeFromCollectionAllowListCross((address,uint256))"
+ },
+ "functionSelector": "09ba452a",
+ "id": 547,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromCollectionAllowListCross",
+ "nameLocation": "11362:34:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 545,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 544,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11420:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 547,
+ "src": "11397:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 543,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 542,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "11397:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "11397:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "11397:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11396:29:2"
+ },
+ "returnParameters": {
+ "id": 546,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11434:0:2"
+ },
+ "scope": 605,
+ "src": "11353:82:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 548,
+ "nodeType": "StructuredDocumentation",
+ "src": "11438:185:2",
+ "text": "Switch permission for minting.\n @param mode Enable if \"true\".\n @dev EVM selector for this function is: 0x00018e84,\n or in textual repr: setCollectionMintMode(bool)"
+ },
+ "functionSelector": "00018e84",
+ "id": 553,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionMintMode",
+ "nameLocation": "11634:21:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 551,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 550,
+ "mutability": "mutable",
+ "name": "mode",
+ "nameLocation": "11661:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 553,
+ "src": "11656:9:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 549,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "11656:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11655:11:2"
+ },
+ "returnParameters": {
+ "id": 552,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11675:0:2"
+ },
+ "scope": 605,
+ "src": "11625:51:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 554,
+ "nodeType": "StructuredDocumentation",
+ "src": "11679:262:2",
+ "text": "Check that account is the owner or admin of the collection\n @param user account to verify\n @return \"true\" if account is the owner or admin\n @dev EVM selector for this function is: 0x9811b0c7,\n or in textual repr: isOwnerOrAdmin(address)"
+ },
+ "functionSelector": "9811b0c7",
+ "id": 561,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isOwnerOrAdmin",
+ "nameLocation": "11952:14:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 557,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 556,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11975:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 561,
+ "src": "11967:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 555,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11967:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11966:14:2"
+ },
+ "returnParameters": {
+ "id": 560,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 559,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 561,
+ "src": "12004:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 558,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12004:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12003:6:2"
+ },
+ "scope": 605,
+ "src": "11943:67:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 562,
+ "nodeType": "StructuredDocumentation",
+ "src": "12013:288:2",
+ "text": "Check that account is the owner or admin of the collection\n @param user User cross account to verify\n @return \"true\" if account is the owner or admin\n @dev EVM selector for this function is: 0x3e75a905,\n or in textual repr: isOwnerOrAdminCross((address,uint256))"
+ },
+ "functionSelector": "3e75a905",
+ "id": 570,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isOwnerOrAdminCross",
+ "nameLocation": "12312:19:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 566,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 565,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "12355:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 570,
+ "src": "12332:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 564,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 563,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "12332:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "12332:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "12332:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12331:29:2"
+ },
+ "returnParameters": {
+ "id": 569,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 568,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 570,
+ "src": "12384:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 567,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12384:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12383:6:2"
+ },
+ "scope": 605,
+ "src": "12303:87:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 571,
+ "nodeType": "StructuredDocumentation",
+ "src": "12393:187:2",
+ "text": "Returns collection type\n @return `Fungible` or `NFT` or `ReFungible`\n @dev EVM selector for this function is: 0xd34b55b8,\n or in textual repr: uniqueCollectionType()"
+ },
+ "functionSelector": "d34b55b8",
+ "id": 576,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "uniqueCollectionType",
+ "nameLocation": "12591:20:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 572,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12611:2:2"
+ },
+ "returnParameters": {
+ "id": 575,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 574,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 576,
+ "src": "12637:13:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 573,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "12637:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12636:15:2"
+ },
+ "scope": 605,
+ "src": "12582:70:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 577,
+ "nodeType": "StructuredDocumentation",
+ "src": "12655:272:2",
+ "text": "Get collection owner.\n @return Tuble with sponsor address and his substrate mirror.\n If address is canonical then substrate mirror is zero and vice versa.\n @dev EVM selector for this function is: 0xdf727d3b,\n or in textual repr: collectionOwner()"
+ },
+ "functionSelector": "df727d3b",
+ "id": 583,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionOwner",
+ "nameLocation": "12938:15:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 578,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12953:2:2"
+ },
+ "returnParameters": {
+ "id": 582,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 581,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 583,
+ "src": "12979:22:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 580,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 579,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "12979:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "12979:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "12979:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12978:24:2"
+ },
+ "scope": 605,
+ "src": "12929:74:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 584,
+ "nodeType": "StructuredDocumentation",
+ "src": "13006:258:2",
+ "text": "Changes collection owner to another account\n @dev Owner can be changed only by current owner\n @param newOwner new owner account\n @dev EVM selector for this function is: 0x4f53e226,\n or in textual repr: changeCollectionOwner(address)"
+ },
+ "functionSelector": "4f53e226",
+ "id": 589,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "changeCollectionOwner",
+ "nameLocation": "13275:21:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 587,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 586,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "13305:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 589,
+ "src": "13297:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 585,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "13297:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13296:18:2"
+ },
+ "returnParameters": {
+ "id": 588,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13323:0:2"
+ },
+ "scope": 605,
+ "src": "13266:58:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 590,
+ "nodeType": "StructuredDocumentation",
+ "src": "13327:291:2",
+ "text": "Get collection administrators\n @return Vector of tuples with admins address and his substrate mirror.\n If address is canonical then substrate mirror is zero and vice versa.\n @dev EVM selector for this function is: 0x5813216b,\n or in textual repr: collectionAdmins()"
+ },
+ "functionSelector": "5813216b",
+ "id": 597,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionAdmins",
+ "nameLocation": "13629:16:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 591,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13645:2:2"
+ },
+ "returnParameters": {
+ "id": 596,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 595,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 597,
+ "src": "13671:24:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_EthCrossAccount_$610_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct EthCrossAccount[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 593,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 592,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "13671:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "13671:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "13671:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "id": 594,
+ "nodeType": "ArrayTypeName",
+ "src": "13671:17:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_EthCrossAccount_$610_storage_$dyn_storage_ptr",
+ "typeString": "struct EthCrossAccount[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13670:26:2"
+ },
+ "scope": 605,
+ "src": "13620:77:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 598,
+ "nodeType": "StructuredDocumentation",
+ "src": "13700:266:2",
+ "text": "Changes collection owner to another account\n @dev Owner can be changed only by current owner\n @param newOwner new owner cross account\n @dev EVM selector for this function is: 0xe5c9913f,\n or in textual repr: setOwnerCross((address,uint256))"
+ },
+ "functionSelector": "e5c9913f",
+ "id": 604,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setOwnerCross",
+ "nameLocation": "13977:13:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 602,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 601,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "14014:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 604,
+ "src": "13991:31:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 600,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 599,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "13991:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "13991:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "13991:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13990:33:2"
+ },
+ "returnParameters": {
+ "id": 603,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "14032:0:2"
+ },
+ "scope": 605,
+ "src": "13968:65:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "2883:11152:2",
+ "usedErrors": []
+ },
+ {
+ "canonicalName": "EthCrossAccount",
+ "id": 610,
+ "members": [
+ {
+ "constant": false,
+ "id": 607,
+ "mutability": "mutable",
+ "name": "eth",
+ "nameLocation": "14101:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "14093:11:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 606,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14093:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 609,
+ "mutability": "mutable",
+ "name": "sub",
+ "nameLocation": "14115:3:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 610,
+ "src": "14107:11:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14107:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "EthCrossAccount",
+ "nameLocation": "14074:15:2",
+ "nodeType": "StructDefinition",
+ "scope": 931,
+ "src": "14067:54:2",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "Tuple24",
+ "id": 615,
+ "members": [
+ {
+ "constant": false,
+ "id": 612,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "14175:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 615,
+ "src": "14167:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 611,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14167:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 614,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "14193:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 615,
+ "src": "14185:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 613,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14185:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple24",
+ "nameLocation": "14156:7:2",
+ "nodeType": "StructDefinition",
+ "scope": 931,
+ "src": "14149:54:2",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "Tuple21",
+ "id": 620,
+ "members": [
+ {
+ "constant": false,
+ "id": 617,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "14256:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 620,
+ "src": "14249:14:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 616,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "14249:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 619,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "14272:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 620,
+ "src": "14266:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 618,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14266:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple21",
+ "nameLocation": "14238:7:2",
+ "nodeType": "StructDefinition",
+ "scope": 931,
+ "src": "14231:51:2",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 622,
+ "name": "Dummy",
+ "nameLocations": [
+ "14505:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "14505:5:2"
+ },
+ "id": 623,
+ "nodeType": "InheritanceSpecifier",
+ "src": "14505:5:2"
+ },
+ {
+ "baseName": {
+ "id": 624,
+ "name": "ERC165",
+ "nameLocations": [
+ "14512:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "14512:6:2"
+ },
+ "id": 625,
+ "nodeType": "InheritanceSpecifier",
+ "src": "14512:6:2"
+ }
+ ],
+ "canonicalName": "ERC721Metadata",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 621,
+ "nodeType": "StructuredDocumentation",
+ "src": "14284:193:2",
+ "text": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n @dev the ERC-165 identifier for this interface is 0x5b5e139f"
+ },
+ "fullyImplemented": false,
+ "id": 634,
+ "linearizedBaseContracts": [
+ 634,
+ 301,
+ 291
+ ],
+ "name": "ERC721Metadata",
+ "nameLocation": "14487:14:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 626,
+ "nodeType": "StructuredDocumentation",
+ "src": "15143:784:2",
+ "text": "@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev If the token has a `url` property and it is not empty, it is returned.\n Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`.\n If the collection property `baseURI` is empty or absent, return \"\" (empty string)\n otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix\n otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).\n @return token's const_metadata\n @dev EVM selector for this function is: 0xc87b56dd,\n or in textual repr: tokenURI(uint256)"
+ },
+ "functionSelector": "c87b56dd",
+ "id": 633,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenURI",
+ "nameLocation": "15938:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 629,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 628,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "15955:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 633,
+ "src": "15947:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 627,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15947:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15946:17:2"
+ },
+ "returnParameters": {
+ "id": 632,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 631,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 633,
+ "src": "15987:13:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 630,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "15987:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15986:15:2"
+ },
+ "scope": 634,
+ "src": "15929:73:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "14477:1527:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 636,
+ "name": "Dummy",
+ "nameLocations": [
+ "16168:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "16168:5:2"
+ },
+ "id": 637,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16168:5:2"
+ },
+ {
+ "baseName": {
+ "id": 638,
+ "name": "ERC165",
+ "nameLocations": [
+ "16175:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "16175:6:2"
+ },
+ "id": 639,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16175:6:2"
+ }
+ ],
+ "canonicalName": "ERC721Burnable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 635,
+ "nodeType": "StructuredDocumentation",
+ "src": "16006:134:2",
+ "text": "@title ERC721 Token that can be irreversibly burned (destroyed).\n @dev the ERC-165 identifier for this interface is 0x42966c68"
+ },
+ "fullyImplemented": false,
+ "id": 646,
+ "linearizedBaseContracts": [
+ 646,
+ 301,
+ 291
+ ],
+ "name": "ERC721Burnable",
+ "nameLocation": "16150:14:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 640,
+ "nodeType": "StructuredDocumentation",
+ "src": "16185:295:2",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param tokenId The NFT to approve\n @dev EVM selector for this function is: 0x42966c68,\n or in textual repr: burn(uint256)"
+ },
+ "functionSelector": "42966c68",
+ "id": 645,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burn",
+ "nameLocation": "16491:4:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 643,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 642,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "16504:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 645,
+ "src": "16496:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 641,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16496:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16495:17:2"
+ },
+ "returnParameters": {
+ "id": 644,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16521:0:2"
+ },
+ "scope": 646,
+ "src": "16482:40:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "16140:384:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ERC721UniqueMintableEvents",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 647,
+ "nodeType": "StructuredDocumentation",
+ "src": "16526:27:2",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 650,
+ "linearizedBaseContracts": [
+ 650
+ ],
+ "name": "ERC721UniqueMintableEvents",
+ "nameLocation": "16563:26:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "b828d9b5c78095deeeeff2eca2e5d4fe046ce3feb4c99702624a3fd384ad2dbc",
+ "id": 649,
+ "name": "MintingFinished",
+ "nameLocation": "16599:15:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 648,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16614:2:2"
+ },
+ "src": "16593:24:2"
+ }
+ ],
+ "scope": 931,
+ "src": "16553:66:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 652,
+ "name": "Dummy",
+ "nameLocations": [
+ "16753:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "16753:5:2"
+ },
+ "id": 653,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16753:5:2"
+ },
+ {
+ "baseName": {
+ "id": 654,
+ "name": "ERC165",
+ "nameLocations": [
+ "16760:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "16760:6:2"
+ },
+ "id": 655,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16760:6:2"
+ },
+ {
+ "baseName": {
+ "id": 656,
+ "name": "ERC721UniqueMintableEvents",
+ "nameLocations": [
+ "16768:26:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 650,
+ "src": "16768:26:2"
+ },
+ "id": 657,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16768:26:2"
+ }
+ ],
+ "canonicalName": "ERC721UniqueMintable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 651,
+ "nodeType": "StructuredDocumentation",
+ "src": "16621:98:2",
+ "text": "@title ERC721 minting logic.\n @dev the ERC-165 identifier for this interface is 0x476ff149"
+ },
+ "fullyImplemented": false,
+ "id": 688,
+ "linearizedBaseContracts": [
+ 688,
+ 650,
+ 301,
+ 291
+ ],
+ "name": "ERC721UniqueMintable",
+ "nameLocation": "16729:20:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 658,
+ "nodeType": "StructuredDocumentation",
+ "src": "16798:99:2",
+ "text": "@dev EVM selector for this function is: 0x05d2035b,\n or in textual repr: mintingFinished()"
+ },
+ "functionSelector": "05d2035b",
+ "id": 663,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mintingFinished",
+ "nameLocation": "16908:15:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 659,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16923:2:2"
+ },
+ "returnParameters": {
+ "id": 662,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 661,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "16949:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 660,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16949:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16948:6:2"
+ },
+ "scope": 688,
+ "src": "16899:56:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 664,
+ "nodeType": "StructuredDocumentation",
+ "src": "16958:215:2",
+ "text": "@notice Function to mint token.\n @param to The new owner\n @return uint256 The id of the newly minted token\n @dev EVM selector for this function is: 0x6a627842,\n or in textual repr: mint(address)"
+ },
+ "functionSelector": "6a627842",
+ "id": 671,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "17184:4:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 667,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 666,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "17197:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 671,
+ "src": "17189:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 665,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "17189:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17188:12:2"
+ },
+ "returnParameters": {
+ "id": 670,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 669,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 671,
+ "src": "17219:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 668,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17219:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17218:9:2"
+ },
+ "scope": 688,
+ "src": "17175:53:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 672,
+ "nodeType": "StructuredDocumentation",
+ "src": "17656:332:2",
+ "text": "@notice Function to mint token with the given tokenUri.\n @param to The new owner\n @param tokenUri Token URI that would be stored in the NFT properties\n @return uint256 The id of the newly minted token\n @dev EVM selector for this function is: 0x45c17782,\n or in textual repr: mintWithTokenURI(address,string)"
+ },
+ "functionSelector": "45c17782",
+ "id": 681,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mintWithTokenURI",
+ "nameLocation": "17999:16:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 677,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 674,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "18024:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 681,
+ "src": "18016:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 673,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "18016:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 676,
+ "mutability": "mutable",
+ "name": "tokenUri",
+ "nameLocation": "18042:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 681,
+ "src": "18028:22:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 675,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "18028:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18015:36:2"
+ },
+ "returnParameters": {
+ "id": 680,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 679,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 681,
+ "src": "18070:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 678,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "18070:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18069:9:2"
+ },
+ "scope": 688,
+ "src": "17990:89:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 682,
+ "nodeType": "StructuredDocumentation",
+ "src": "18663:123:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x7d64bcb4,\n or in textual repr: finishMinting()"
+ },
+ "functionSelector": "7d64bcb4",
+ "id": 687,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "finishMinting",
+ "nameLocation": "18797:13:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 683,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "18810:2:2"
+ },
+ "returnParameters": {
+ "id": 686,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 685,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 687,
+ "src": "18831:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 684,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "18831:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18830:6:2"
+ },
+ "scope": 688,
+ "src": "18788:49:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "16719:2120:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 690,
+ "name": "Dummy",
+ "nameLocations": [
+ "18983:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "18983:5:2"
+ },
+ "id": 691,
+ "nodeType": "InheritanceSpecifier",
+ "src": "18983:5:2"
+ },
+ {
+ "baseName": {
+ "id": 692,
+ "name": "ERC165",
+ "nameLocations": [
+ "18990:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "18990:6:2"
+ },
+ "id": 693,
+ "nodeType": "InheritanceSpecifier",
+ "src": "18990:6:2"
+ }
+ ],
+ "canonicalName": "ERC721UniqueExtensions",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 689,
+ "nodeType": "StructuredDocumentation",
+ "src": "18841:106:2",
+ "text": "@title Unique extensions for ERC721.\n @dev the ERC-165 identifier for this interface is 0x244543ee"
+ },
+ "fullyImplemented": false,
+ "id": 758,
+ "linearizedBaseContracts": [
+ 758,
+ 301,
+ 291
+ ],
+ "name": "ERC721UniqueExtensions",
+ "nameLocation": "18957:22:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 694,
+ "nodeType": "StructuredDocumentation",
+ "src": "19000:162:2",
+ "text": "@notice A descriptive name for a collection of NFTs in this contract\n @dev EVM selector for this function is: 0x06fdde03,\n or in textual repr: name()"
+ },
+ "functionSelector": "06fdde03",
+ "id": 699,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "19173:4:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 695,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19177:2:2"
+ },
+ "returnParameters": {
+ "id": 698,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 697,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 699,
+ "src": "19203:13:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 696,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "19203:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19202:15:2"
+ },
+ "scope": 758,
+ "src": "19164:54:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 700,
+ "nodeType": "StructuredDocumentation",
+ "src": "19221:149:2",
+ "text": "@notice An abbreviated name for NFTs in this contract\n @dev EVM selector for this function is: 0x95d89b41,\n or in textual repr: symbol()"
+ },
+ "functionSelector": "95d89b41",
+ "id": 705,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "19381:6:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 701,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19387:2:2"
+ },
+ "returnParameters": {
+ "id": 704,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 703,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 705,
+ "src": "19413:13:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 702,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "19413:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19412:15:2"
+ },
+ "scope": 758,
+ "src": "19372:56:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 706,
+ "nodeType": "StructuredDocumentation",
+ "src": "19431:476:2",
+ "text": "@notice Set or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n @dev Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param approved The new substrate address approved NFT controller\n @param tokenId The NFT to approve\n @dev EVM selector for this function is: 0x0ecd0ab0,\n or in textual repr: approveCross((address,uint256),uint256)"
+ },
+ "functionSelector": "0ecd0ab0",
+ "id": 714,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approveCross",
+ "nameLocation": "19918:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 709,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "19954:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 714,
+ "src": "19931:31:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 708,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 707,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "19931:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "19931:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "19931:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 711,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "19972:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 714,
+ "src": "19964:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 710,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19964:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19930:50:2"
+ },
+ "returnParameters": {
+ "id": 713,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19989:0:2"
+ },
+ "scope": 758,
+ "src": "19909:81:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 715,
+ "nodeType": "StructuredDocumentation",
+ "src": "19993:359:2",
+ "text": "@notice Transfer ownership of an NFT\n @dev Throws unless `msg.sender` is the current owner. Throws if `to`\n is the zero address. Throws if `tokenId` is not a valid NFT.\n @param to The new owner\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0xa9059cbb,\n or in textual repr: transfer(address,uint256)"
+ },
+ "functionSelector": "a9059cbb",
+ "id": 722,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "20363:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 720,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 717,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "20380:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 722,
+ "src": "20372:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 716,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "20372:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 719,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "20392:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 722,
+ "src": "20384:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 718,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20384:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20371:29:2"
+ },
+ "returnParameters": {
+ "id": 721,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "20409:0:2"
+ },
+ "scope": 758,
+ "src": "20354:56:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 723,
+ "nodeType": "StructuredDocumentation",
+ "src": "20413:527:2",
+ "text": "@notice Transfer ownership of an NFT from cross account address to cross account address\n @dev Throws unless `msg.sender` is the current owner. Throws if `to`\n is the zero address. Throws if `tokenId` is not a valid NFT.\n @param from Cross acccount address of current owner\n @param to Cross acccount address of new owner\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0xd5cf430b,\n or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)"
+ },
+ "functionSelector": "d5cf430b",
+ "id": 734,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFromCross",
+ "nameLocation": "20951:17:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 732,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 726,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "20995:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 734,
+ "src": "20972:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 725,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 724,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "20972:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "20972:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "20972:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 729,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "21026:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 734,
+ "src": "21003:25:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 728,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 727,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "21003:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "21003:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "21003:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 731,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "21040:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 734,
+ "src": "21032:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 730,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21032:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20968:82:2"
+ },
+ "returnParameters": {
+ "id": 733,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21059:0:2"
+ },
+ "scope": 758,
+ "src": "20942:118:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 735,
+ "nodeType": "StructuredDocumentation",
+ "src": "21063:466:2",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this NFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid NFT.\n @param from The current owner of the NFT\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0x79cc6790,\n or in textual repr: burnFrom(address,uint256)"
+ },
+ "functionSelector": "79cc6790",
+ "id": 742,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burnFrom",
+ "nameLocation": "21540:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 740,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 737,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "21557:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 742,
+ "src": "21549:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 736,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "21549:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 739,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "21571:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 742,
+ "src": "21563:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 738,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21563:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21548:31:2"
+ },
+ "returnParameters": {
+ "id": 741,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21588:0:2"
+ },
+ "scope": 758,
+ "src": "21531:58:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 743,
+ "nodeType": "StructuredDocumentation",
+ "src": "21592:481:2",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this NFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid NFT.\n @param from The current owner of the NFT\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0xbb2f5a58,\n or in textual repr: burnFromCross((address,uint256),uint256)"
+ },
+ "functionSelector": "bb2f5a58",
+ "id": 751,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burnFromCross",
+ "nameLocation": "22084:13:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 749,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 746,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "22121:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 751,
+ "src": "22098:27:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 745,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 744,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "22098:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 610,
+ "src": "22098:15:2"
+ },
+ "referencedDeclaration": 610,
+ "src": "22098:15:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 748,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "22135:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 751,
+ "src": "22127:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 747,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22127:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22097:46:2"
+ },
+ "returnParameters": {
+ "id": 750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "22152:0:2"
+ },
+ "scope": 758,
+ "src": "22075:78:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 752,
+ "nodeType": "StructuredDocumentation",
+ "src": "22156:134:2",
+ "text": "@notice Returns next free NFT ID.\n @dev EVM selector for this function is: 0x75794a3c,\n or in textual repr: nextTokenId()"
+ },
+ "functionSelector": "75794a3c",
+ "id": 757,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "nextTokenId",
+ "nameLocation": "22301:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 753,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "22312:2:2"
+ },
+ "returnParameters": {
+ "id": 756,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 755,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 757,
+ "src": "22338:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 754,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "22338:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "22337:9:2"
+ },
+ "scope": 758,
+ "src": "22292:55:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "18947:4475:2",
+ "usedErrors": []
+ },
+ {
+ "canonicalName": "Tuple10",
+ "id": 763,
+ "members": [
+ {
+ "constant": false,
+ "id": 760,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "23476:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 763,
+ "src": "23468:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 759,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23468:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 762,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "23493:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 763,
+ "src": "23486:14:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 761,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "23486:6:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple10",
+ "nameLocation": "23457:7:2",
+ "nodeType": "StructDefinition",
+ "scope": 931,
+ "src": "23450:53:2",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 765,
+ "name": "Dummy",
+ "nameLocations": [
+ "23731:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "23731:5:2"
+ },
+ "id": 766,
+ "nodeType": "InheritanceSpecifier",
+ "src": "23731:5:2"
+ },
+ {
+ "baseName": {
+ "id": 767,
+ "name": "ERC165",
+ "nameLocations": [
+ "23738:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "23738:6:2"
+ },
+ "id": 768,
+ "nodeType": "InheritanceSpecifier",
+ "src": "23738:6:2"
+ }
+ ],
+ "canonicalName": "ERC721Enumerable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 764,
+ "nodeType": "StructuredDocumentation",
+ "src": "23505:196:2",
+ "text": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n @dev the ERC-165 identifier for this interface is 0x780e9d63"
+ },
+ "fullyImplemented": false,
+ "id": 793,
+ "linearizedBaseContracts": [
+ 793,
+ 301,
+ 291
+ ],
+ "name": "ERC721Enumerable",
+ "nameLocation": "23711:16:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 769,
+ "nodeType": "StructuredDocumentation",
+ "src": "23748:281:2",
+ "text": "@notice Enumerate valid NFTs\n @param index A counter less than `totalSupply()`\n @return The token identifier for the `index`th NFT,\n (sort order not specified)\n @dev EVM selector for this function is: 0x4f6ccce7,\n or in textual repr: tokenByIndex(uint256)"
+ },
+ "functionSelector": "4f6ccce7",
+ "id": 776,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenByIndex",
+ "nameLocation": "24040:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 772,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 771,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "24061:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 776,
+ "src": "24053:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 770,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24053:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24052:15:2"
+ },
+ "returnParameters": {
+ "id": 775,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 774,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 776,
+ "src": "24091:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 773,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24091:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24090:9:2"
+ },
+ "scope": 793,
+ "src": "24031:69:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 777,
+ "nodeType": "StructuredDocumentation",
+ "src": "24103:144:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x2f745c59,\n or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "functionSelector": "2f745c59",
+ "id": 786,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenOfOwnerByIndex",
+ "nameLocation": "24258:19:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 782,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 779,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "24286:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 786,
+ "src": "24278:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 778,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24278:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 781,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "24301:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 786,
+ "src": "24293:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 780,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24293:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24277:30:2"
+ },
+ "returnParameters": {
+ "id": 785,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 784,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 786,
+ "src": "24331:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 783,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24331:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24330:9:2"
+ },
+ "scope": 793,
+ "src": "24249:91:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 787,
+ "nodeType": "StructuredDocumentation",
+ "src": "24343:300:2",
+ "text": "@notice Count NFTs tracked by this contract\n @return A count of valid NFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address\n @dev EVM selector for this function is: 0x18160ddd,\n or in textual repr: totalSupply()"
+ },
+ "functionSelector": "18160ddd",
+ "id": 792,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "24654:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 788,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "24665:2:2"
+ },
+ "returnParameters": {
+ "id": 791,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 790,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 792,
+ "src": "24691:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 789,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24691:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24690:9:2"
+ },
+ "scope": 793,
+ "src": "24645:55:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "23701:1001:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ERC721Events",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 794,
+ "nodeType": "StructuredDocumentation",
+ "src": "24704:27:2",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 819,
+ "linearizedBaseContracts": [
+ 819
+ ],
+ "name": "ERC721Events",
+ "nameLocation": "24741:12:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 802,
+ "name": "Transfer",
+ "nameLocation": "24763:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 801,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 796,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "24788:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 802,
+ "src": "24772:20:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 795,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24772:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 798,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "24810:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 802,
+ "src": "24794:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 797,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24794:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 800,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "24830:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 802,
+ "src": "24814:23:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 799,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24814:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24771:67:2"
+ },
+ "src": "24757:82:2"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 810,
+ "name": "Approval",
+ "nameLocation": "24847:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 809,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 804,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "24872:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 810,
+ "src": "24856:21:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 803,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24856:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 806,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "24895:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 810,
+ "src": "24879:24:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 805,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24879:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 808,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "24921:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 810,
+ "src": "24905:23:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 807,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24905:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24855:74:2"
+ },
+ "src": "24841:89:2"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31",
+ "id": 818,
+ "name": "ApprovalForAll",
+ "nameLocation": "24938:14:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 817,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 812,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "24969:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 818,
+ "src": "24953:21:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 811,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24953:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 814,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "24992:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 818,
+ "src": "24976:24:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 813,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24976:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 816,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "25007:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 818,
+ "src": "25002:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 815,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "25002:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24952:64:2"
+ },
+ "src": "24932:85:2"
+ }
+ ],
+ "scope": 931,
+ "src": "24731:288:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 821,
+ "name": "Dummy",
+ "nameLocations": [
+ "25227:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "25227:5:2"
+ },
+ "id": 822,
+ "nodeType": "InheritanceSpecifier",
+ "src": "25227:5:2"
+ },
+ {
+ "baseName": {
+ "id": 823,
+ "name": "ERC165",
+ "nameLocations": [
+ "25234:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "25234:6:2"
+ },
+ "id": 824,
+ "nodeType": "InheritanceSpecifier",
+ "src": "25234:6:2"
+ },
+ {
+ "baseName": {
+ "id": 825,
+ "name": "ERC721Events",
+ "nameLocations": [
+ "25242:12:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 819,
+ "src": "25242:12:2"
+ },
+ "id": 826,
+ "nodeType": "InheritanceSpecifier",
+ "src": "25242:12:2"
+ }
+ ],
+ "canonicalName": "ERC721",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 820,
+ "nodeType": "StructuredDocumentation",
+ "src": "25021:186:2",
+ "text": "@title ERC-721 Non-Fungible Token Standard\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\n @dev the ERC-165 identifier for this interface is 0x80ac58cd"
+ },
+ "fullyImplemented": false,
+ "id": 909,
+ "linearizedBaseContracts": [
+ 909,
+ 819,
+ 301,
+ 291
+ ],
+ "name": "ERC721",
+ "nameLocation": "25217:6:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 827,
+ "nodeType": "StructuredDocumentation",
+ "src": "25258:407:2",
+ "text": "@notice Count all NFTs assigned to an owner\n @dev NFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param owner An address for whom to query the balance\n @return The number of NFTs owned by `owner`, possibly zero\n @dev EVM selector for this function is: 0x70a08231,\n or in textual repr: balanceOf(address)"
+ },
+ "functionSelector": "70a08231",
+ "id": 834,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "25676:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 830,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 829,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "25694:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 834,
+ "src": "25686:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 828,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "25686:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25685:15:2"
+ },
+ "returnParameters": {
+ "id": 833,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 832,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 834,
+ "src": "25724:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 831,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25724:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25723:9:2"
+ },
+ "scope": 909,
+ "src": "25667:66:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 835,
+ "nodeType": "StructuredDocumentation",
+ "src": "25736:334:2",
+ "text": "@notice Find the owner of an NFT\n @dev NFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n @param tokenId The identifier for an NFT\n @return The address of the owner of the NFT\n @dev EVM selector for this function is: 0x6352211e,\n or in textual repr: ownerOf(uint256)"
+ },
+ "functionSelector": "6352211e",
+ "id": 842,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ownerOf",
+ "nameLocation": "26081:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 838,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 837,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "26097:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 842,
+ "src": "26089:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 836,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26089:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26088:17:2"
+ },
+ "returnParameters": {
+ "id": 841,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 840,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 842,
+ "src": "26129:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 839,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26129:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26128:9:2"
+ },
+ "scope": 909,
+ "src": "26072:66:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 843,
+ "nodeType": "StructuredDocumentation",
+ "src": "26141:155:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0xb88d4fde,\n or in textual repr: safeTransferFrom(address,address,uint256,bytes)"
+ },
+ "functionSelector": "b88d4fde",
+ "id": 854,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "safeTransferFrom",
+ "nameLocation": "26307:16:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 852,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 845,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "26335:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 854,
+ "src": "26327:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 844,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26327:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 847,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "26351:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 854,
+ "src": "26343:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 846,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26343:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 849,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "26365:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 854,
+ "src": "26357:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 848,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26357:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 851,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "26389:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 854,
+ "src": "26376:17:2",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 850,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "26376:5:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26323:73:2"
+ },
+ "returnParameters": {
+ "id": 853,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "26405:0:2"
+ },
+ "scope": 909,
+ "src": "26298:108:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 855,
+ "nodeType": "StructuredDocumentation",
+ "src": "26409:149:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x42842e0e,\n or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "functionSelector": "42842e0e",
+ "id": 864,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "safeTransferFrom",
+ "nameLocation": "26569:16:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 862,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 857,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "26597:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 864,
+ "src": "26589:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 856,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26589:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 859,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "26613:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 864,
+ "src": "26605:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 858,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26605:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 861,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "26627:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 864,
+ "src": "26619:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 860,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26619:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26585:52:2"
+ },
+ "returnParameters": {
+ "id": 863,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "26646:0:2"
+ },
+ "scope": 909,
+ "src": "26560:87:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 865,
+ "nodeType": "StructuredDocumentation",
+ "src": "26650:633:2",
+ "text": "@notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this NFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid NFT.\n @param from The current owner of the NFT\n @param to The new owner\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0x23b872dd,\n or in textual repr: transferFrom(address,address,uint256)"
+ },
+ "functionSelector": "23b872dd",
+ "id": 874,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "27294:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 872,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 867,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "27318:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 874,
+ "src": "27310:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 866,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27310:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 869,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "27334:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 874,
+ "src": "27326:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 868,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27326:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 871,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "27348:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 874,
+ "src": "27340:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 870,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27340:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27306:52:2"
+ },
+ "returnParameters": {
+ "id": 873,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "27367:0:2"
+ },
+ "scope": 909,
+ "src": "27285:83:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 875,
+ "nodeType": "StructuredDocumentation",
+ "src": "27371:443:2",
+ "text": "@notice Set or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n @dev Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param approved The new approved NFT controller\n @param tokenId The NFT to approve\n @dev EVM selector for this function is: 0x095ea7b3,\n or in textual repr: approve(address,uint256)"
+ },
+ "functionSelector": "095ea7b3",
+ "id": 882,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "27825:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 880,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 877,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "27841:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 882,
+ "src": "27833:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 876,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27833:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 879,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "27859:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 882,
+ "src": "27851:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 878,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27851:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27832:35:2"
+ },
+ "returnParameters": {
+ "id": 881,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "27876:0:2"
+ },
+ "scope": 909,
+ "src": "27816:61:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 883,
+ "nodeType": "StructuredDocumentation",
+ "src": "27880:139:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0xa22cb465,\n or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "functionSelector": "a22cb465",
+ "id": 890,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setApprovalForAll",
+ "nameLocation": "28030:17:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 888,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 885,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "28056:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 890,
+ "src": "28048:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 884,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28048:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 887,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "28071:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 890,
+ "src": "28066:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 886,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "28066:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28047:33:2"
+ },
+ "returnParameters": {
+ "id": 889,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "28089:0:2"
+ },
+ "scope": 909,
+ "src": "28021:69:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 891,
+ "nodeType": "StructuredDocumentation",
+ "src": "28093:128:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x081812fc,\n or in textual repr: getApproved(uint256)"
+ },
+ "functionSelector": "081812fc",
+ "id": 898,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getApproved",
+ "nameLocation": "28232:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 894,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 893,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "28252:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 898,
+ "src": "28244:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 892,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "28244:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28243:17:2"
+ },
+ "returnParameters": {
+ "id": 897,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 896,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 898,
+ "src": "28284:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 895,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28284:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28283:9:2"
+ },
+ "scope": 909,
+ "src": "28223:70:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 899,
+ "nodeType": "StructuredDocumentation",
+ "src": "28296:141:2",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0xe985e9c5,\n or in textual repr: isApprovedForAll(address,address)"
+ },
+ "functionSelector": "e985e9c5",
+ "id": 908,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isApprovedForAll",
+ "nameLocation": "28448:16:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 904,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 901,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "28473:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 908,
+ "src": "28465:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 900,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28465:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 903,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "28488:8:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 908,
+ "src": "28480:16:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 902,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28480:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28464:33:2"
+ },
+ "returnParameters": {
+ "id": 907,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 906,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 908,
+ "src": "28521:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 905,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28521:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28520:9:2"
+ },
+ "scope": 909,
+ "src": "28439:91:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 931,
+ "src": "25207:3325:2",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 910,
+ "name": "Dummy",
+ "nameLocations": [
+ "28558:5:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 291,
+ "src": "28558:5:2"
+ },
+ "id": 911,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28558:5:2"
+ },
+ {
+ "baseName": {
+ "id": 912,
+ "name": "ERC165",
+ "nameLocations": [
+ "28566:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 301,
+ "src": "28566:6:2"
+ },
+ "id": 913,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28566:6:2"
+ },
+ {
+ "baseName": {
+ "id": 914,
+ "name": "ERC721",
+ "nameLocations": [
+ "28575:6:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 909,
+ "src": "28575:6:2"
+ },
+ "id": 915,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28575:6:2"
+ },
+ {
+ "baseName": {
+ "id": 916,
+ "name": "ERC721Enumerable",
+ "nameLocations": [
+ "28584:16:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 793,
+ "src": "28584:16:2"
+ },
+ "id": 917,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28584:16:2"
+ },
+ {
+ "baseName": {
+ "id": 918,
+ "name": "ERC721UniqueExtensions",
+ "nameLocations": [
+ "28603:22:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 758,
+ "src": "28603:22:2"
+ },
+ "id": 919,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28603:22:2"
+ },
+ {
+ "baseName": {
+ "id": 920,
+ "name": "ERC721UniqueMintable",
+ "nameLocations": [
+ "28628:20:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 688,
+ "src": "28628:20:2"
+ },
+ "id": 921,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28628:20:2"
+ },
+ {
+ "baseName": {
+ "id": 922,
+ "name": "ERC721Burnable",
+ "nameLocations": [
+ "28651:14:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 646,
+ "src": "28651:14:2"
+ },
+ "id": 923,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28651:14:2"
+ },
+ {
+ "baseName": {
+ "id": 924,
+ "name": "ERC721Metadata",
+ "nameLocations": [
+ "28668:14:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 634,
+ "src": "28668:14:2"
+ },
+ "id": 925,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28668:14:2"
+ },
+ {
+ "baseName": {
+ "id": 926,
+ "name": "Collection",
+ "nameLocations": [
+ "28685:10:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 605,
+ "src": "28685:10:2"
+ },
+ "id": 927,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28685:10:2"
+ },
+ {
+ "baseName": {
+ "id": 928,
+ "name": "TokenProperties",
+ "nameLocations": [
+ "28698:15:2"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 357,
+ "src": "28698:15:2"
+ },
+ "id": 929,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28698:15:2"
+ }
+ ],
+ "canonicalName": "UniqueNFT",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 930,
+ "linearizedBaseContracts": [
+ 930,
+ 357,
+ 605,
+ 634,
+ 646,
+ 688,
+ 650,
+ 758,
+ 793,
+ 909,
+ 819,
+ 301,
+ 291
+ ],
+ "name": "UniqueNFT",
+ "nameLocation": "28544:9:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 931,
+ "src": "28534:182:2",
+ "usedErrors": []
+ }
+ ],
+ "src": "75:28642:2"
+ },
+ "id": 2
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol",
+ "exportedSymbols": {
+ "Collection": [
+ 1248
+ ],
+ "Dummy": [
+ 934
+ ],
+ "ERC165": [
+ 944
+ ],
+ "ERC721": [
+ 1551
+ ],
+ "ERC721Burnable": [
+ 1289
+ ],
+ "ERC721Enumerable": [
+ 1435
+ ],
+ "ERC721Events": [
+ 1461
+ ],
+ "ERC721Metadata": [
+ 1277
+ ],
+ "ERC721UniqueExtensions": [
+ 1400
+ ],
+ "ERC721UniqueMintable": [
+ 1331
+ ],
+ "ERC721UniqueMintableEvents": [
+ 1293
+ ],
+ "EthCrossAccount": [
+ 1253
+ ],
+ "TokenProperties": [
+ 1000
+ ],
+ "Tuple20": [
+ 1263
+ ],
+ "Tuple23": [
+ 1258
+ ],
+ "Tuple9": [
+ 1405
+ ],
+ "UniqueRefungible": [
+ 1572
+ ]
+ },
+ "id": 1573,
+ "license": "OTHER",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 932,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "75:31:3"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Dummy",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 933,
+ "nodeType": "StructuredDocumentation",
+ "src": "108:29:3",
+ "text": "@dev common stubs holder"
+ },
+ "fullyImplemented": true,
+ "id": 934,
+ "linearizedBaseContracts": [
+ 934
+ ],
+ "name": "Dummy",
+ "nameLocation": "147:5:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 1573,
+ "src": "137:20:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 935,
+ "name": "Dummy",
+ "nameLocations": [
+ "179:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "179:5:3"
+ },
+ "id": 936,
+ "nodeType": "InheritanceSpecifier",
+ "src": "179:5:3"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 944,
+ "linearizedBaseContracts": [
+ 944,
+ 934
+ ],
+ "name": "ERC165",
+ "nameLocation": "169:6:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "01ffc9a7",
+ "id": 943,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "197:17:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 939,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 938,
+ "mutability": "mutable",
+ "name": "interfaceID",
+ "nameLocation": "222:11:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 943,
+ "src": "215:18:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 937,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "215:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "214:20:3"
+ },
+ "returnParameters": {
+ "id": 942,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 941,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 943,
+ "src": "258:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 940,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "258:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "257:6:3"
+ },
+ "scope": 944,
+ "src": "188:76:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "159:107:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 946,
+ "name": "Dummy",
+ "nameLocations": [
+ "470:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "470:5:3"
+ },
+ "id": 947,
+ "nodeType": "InheritanceSpecifier",
+ "src": "470:5:3"
+ },
+ {
+ "baseName": {
+ "id": 948,
+ "name": "ERC165",
+ "nameLocations": [
+ "477:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "477:6:3"
+ },
+ "id": 949,
+ "nodeType": "InheritanceSpecifier",
+ "src": "477:6:3"
+ }
+ ],
+ "canonicalName": "TokenProperties",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 945,
+ "nodeType": "StructuredDocumentation",
+ "src": "268:173:3",
+ "text": "@title A contract that allows to set and delete token properties and change token property permissions.\n @dev the ERC-165 identifier for this interface is 0x55dba919"
+ },
+ "fullyImplemented": false,
+ "id": 1000,
+ "linearizedBaseContracts": [
+ 1000,
+ 944,
+ 934
+ ],
+ "name": "TokenProperties",
+ "nameLocation": "451:15:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 950,
+ "nodeType": "StructuredDocumentation",
+ "src": "487:537:3",
+ "text": "@notice Set permissions for token property.\n @dev Throws error if `msg.sender` is not admin or owner of the collection.\n @param key Property key.\n @param isMutable Permission to mutate property.\n @param collectionAdmin Permission to mutate property by collection admin if property is mutable.\n @param tokenOwner Permission to mutate property by token owner if property is mutable.\n @dev EVM selector for this function is: 0x222d97fa,\n or in textual repr: setTokenPropertyPermission(string,bool,bool,bool)"
+ },
+ "functionSelector": "222d97fa",
+ "id": 961,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setTokenPropertyPermission",
+ "nameLocation": "1035:26:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 959,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 952,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "1079:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 961,
+ "src": "1065:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 951,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1065:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 954,
+ "mutability": "mutable",
+ "name": "isMutable",
+ "nameLocation": "1091:9:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 961,
+ "src": "1086:14:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 953,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1086:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 956,
+ "mutability": "mutable",
+ "name": "collectionAdmin",
+ "nameLocation": "1109:15:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 961,
+ "src": "1104:20:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 955,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1104:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 958,
+ "mutability": "mutable",
+ "name": "tokenOwner",
+ "nameLocation": "1133:10:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 961,
+ "src": "1128:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 957,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1128:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1061:85:3"
+ },
+ "returnParameters": {
+ "id": 960,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1155:0:3"
+ },
+ "scope": 1000,
+ "src": "1026:130:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 962,
+ "nodeType": "StructuredDocumentation",
+ "src": "1159:334:3",
+ "text": "@notice Set token property value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param key Property key.\n @param value Property value.\n @dev EVM selector for this function is: 0x1752d67b,\n or in textual repr: setProperty(uint256,string,bytes)"
+ },
+ "functionSelector": "1752d67b",
+ "id": 971,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setProperty",
+ "nameLocation": "1504:11:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 969,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 964,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "1527:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 971,
+ "src": "1519:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 963,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1519:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 966,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "1552:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 971,
+ "src": "1538:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 965,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1538:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 968,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1572:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 971,
+ "src": "1559:18:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 967,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1559:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1515:65:3"
+ },
+ "returnParameters": {
+ "id": 970,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1589:0:3"
+ },
+ "scope": 1000,
+ "src": "1495:95:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 972,
+ "nodeType": "StructuredDocumentation",
+ "src": "1593:321:3",
+ "text": "@notice Set token properties value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param properties settable properties\n @dev EVM selector for this function is: 0x14ed3a6e,\n or in textual repr: setProperties(uint256,(string,bytes)[])"
+ },
+ "functionSelector": "14ed3a6e",
+ "id": 981,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setProperties",
+ "nameLocation": "1925:13:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 979,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 974,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "1947:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 981,
+ "src": "1939:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 973,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1939:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 978,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "1973:10:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 981,
+ "src": "1956:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple20[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 976,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 975,
+ "name": "Tuple20",
+ "nameLocations": [
+ "1956:7:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1263,
+ "src": "1956:7:3"
+ },
+ "referencedDeclaration": 1263,
+ "src": "1956:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple20_$1263_storage_ptr",
+ "typeString": "struct Tuple20"
+ }
+ },
+ "id": 977,
+ "nodeType": "ArrayTypeName",
+ "src": "1956:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple20[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1938:46:3"
+ },
+ "returnParameters": {
+ "id": 980,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1993:0:3"
+ },
+ "scope": 1000,
+ "src": "1916:78:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 982,
+ "nodeType": "StructuredDocumentation",
+ "src": "1997:300:3",
+ "text": "@notice Delete token property value.\n @dev Throws error if `msg.sender` has no permission to edit the property.\n @param tokenId ID of the token.\n @param key Property key.\n @dev EVM selector for this function is: 0x066111d1,\n or in textual repr: deleteProperty(uint256,string)"
+ },
+ "functionSelector": "066111d1",
+ "id": 989,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteProperty",
+ "nameLocation": "2308:14:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 987,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 984,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2331:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 989,
+ "src": "2323:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 983,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2323:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 986,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "2354:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 989,
+ "src": "2340:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 985,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2340:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2322:36:3"
+ },
+ "returnParameters": {
+ "id": 988,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2367:0:3"
+ },
+ "scope": 1000,
+ "src": "2299:69:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 990,
+ "nodeType": "StructuredDocumentation",
+ "src": "2371:286:3",
+ "text": "@notice Get token property value.\n @dev Throws error if key not found\n @param tokenId ID of the token.\n @param key Property key.\n @return Property value bytes\n @dev EVM selector for this function is: 0x7228c327,\n or in textual repr: property(uint256,string)"
+ },
+ "functionSelector": "7228c327",
+ "id": 999,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "property",
+ "nameLocation": "2668:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 995,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 992,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2685:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 999,
+ "src": "2677:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 991,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2677:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 994,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "2708:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 999,
+ "src": "2694:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 993,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2694:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2676:36:3"
+ },
+ "returnParameters": {
+ "id": 998,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 997,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 999,
+ "src": "2736:12:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 996,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2736:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2735:14:3"
+ },
+ "scope": 1000,
+ "src": "2659:91:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "441:2311:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1002,
+ "name": "Dummy",
+ "nameLocations": [
+ "2907:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "2907:5:3"
+ },
+ "id": 1003,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2907:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1004,
+ "name": "ERC165",
+ "nameLocations": [
+ "2914:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "2914:6:3"
+ },
+ "id": 1005,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2914:6:3"
+ }
+ ],
+ "canonicalName": "Collection",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1001,
+ "nodeType": "StructuredDocumentation",
+ "src": "2754:129:3",
+ "text": "@title A contract that allows you to work with collections.\n @dev the ERC-165 identifier for this interface is 0xb3152af3"
+ },
+ "fullyImplemented": false,
+ "id": 1248,
+ "linearizedBaseContracts": [
+ 1248,
+ 944,
+ 934
+ ],
+ "name": "Collection",
+ "nameLocation": "2893:10:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1006,
+ "nodeType": "StructuredDocumentation",
+ "src": "2924:215:3",
+ "text": "Set collection property.\n @param key Property key.\n @param value Propery value.\n @dev EVM selector for this function is: 0x2f073f66,\n or in textual repr: setCollectionProperty(string,bytes)"
+ },
+ "functionSelector": "2f073f66",
+ "id": 1013,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionProperty",
+ "nameLocation": "3150:21:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1011,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1008,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3186:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1013,
+ "src": "3172:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1007,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3172:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1010,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3204:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1013,
+ "src": "3191:18:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1009,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "3191:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3171:39:3"
+ },
+ "returnParameters": {
+ "id": 1012,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3219:0:3"
+ },
+ "scope": 1248,
+ "src": "3141:79:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1014,
+ "nodeType": "StructuredDocumentation",
+ "src": "3223:220:3",
+ "text": "Set collection properties.\n @param properties Vector of properties key/value pair.\n @dev EVM selector for this function is: 0x50b26b2a,\n or in textual repr: setCollectionProperties((string,bytes)[])"
+ },
+ "functionSelector": "50b26b2a",
+ "id": 1021,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionProperties",
+ "nameLocation": "3454:23:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1019,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1018,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "3495:10:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1021,
+ "src": "3478:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple20[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1016,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1015,
+ "name": "Tuple20",
+ "nameLocations": [
+ "3478:7:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1263,
+ "src": "3478:7:3"
+ },
+ "referencedDeclaration": 1263,
+ "src": "3478:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple20_$1263_storage_ptr",
+ "typeString": "struct Tuple20"
+ }
+ },
+ "id": 1017,
+ "nodeType": "ArrayTypeName",
+ "src": "3478:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple20[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3477:29:3"
+ },
+ "returnParameters": {
+ "id": 1020,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3515:0:3"
+ },
+ "scope": 1248,
+ "src": "3445:71:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1022,
+ "nodeType": "StructuredDocumentation",
+ "src": "3519:182:3",
+ "text": "Delete collection property.\n @param key Property key.\n @dev EVM selector for this function is: 0x7b7debce,\n or in textual repr: deleteCollectionProperty(string)"
+ },
+ "functionSelector": "7b7debce",
+ "id": 1027,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteCollectionProperty",
+ "nameLocation": "3712:24:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1025,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1024,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "3751:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1027,
+ "src": "3737:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1023,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3737:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3736:19:3"
+ },
+ "returnParameters": {
+ "id": 1026,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3764:0:3"
+ },
+ "scope": 1248,
+ "src": "3703:62:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1028,
+ "nodeType": "StructuredDocumentation",
+ "src": "3768:192:3",
+ "text": "Delete collection properties.\n @param keys Properties keys.\n @dev EVM selector for this function is: 0xee206ee3,\n or in textual repr: deleteCollectionProperties(string[])"
+ },
+ "functionSelector": "ee206ee3",
+ "id": 1034,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deleteCollectionProperties",
+ "nameLocation": "3971:26:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1032,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1031,
+ "mutability": "mutable",
+ "name": "keys",
+ "nameLocation": "4014:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1034,
+ "src": "3998:20:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1029,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "3998:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 1030,
+ "nodeType": "ArrayTypeName",
+ "src": "3998:8:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3997:22:3"
+ },
+ "returnParameters": {
+ "id": 1033,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4028:0:3"
+ },
+ "scope": 1248,
+ "src": "3962:67:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1035,
+ "nodeType": "StructuredDocumentation",
+ "src": "4032:277:3",
+ "text": "Get collection property.\n @dev Throws error if key not found.\n @param key Property key.\n @return bytes The property corresponding to the key.\n @dev EVM selector for this function is: 0xcf24fd6d,\n or in textual repr: collectionProperty(string)"
+ },
+ "functionSelector": "cf24fd6d",
+ "id": 1042,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionProperty",
+ "nameLocation": "4320:18:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1038,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1037,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "4353:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1042,
+ "src": "4339:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1036,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4339:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4338:19:3"
+ },
+ "returnParameters": {
+ "id": 1041,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1040,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1042,
+ "src": "4381:12:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1039,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4381:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4380:14:3"
+ },
+ "scope": 1248,
+ "src": "4311:84:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1043,
+ "nodeType": "StructuredDocumentation",
+ "src": "4398:265:3",
+ "text": "Get collection properties.\n @param keys Properties keys. Empty keys for all propertyes.\n @return Vector of properties key/value pairs.\n @dev EVM selector for this function is: 0x285fb8e6,\n or in textual repr: collectionProperties(string[])"
+ },
+ "functionSelector": "285fb8e6",
+ "id": 1053,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionProperties",
+ "nameLocation": "4674:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1047,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1046,
+ "mutability": "mutable",
+ "name": "keys",
+ "nameLocation": "4711:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1053,
+ "src": "4695:20:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
+ "typeString": "string[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1044,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "4695:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "id": 1045,
+ "nodeType": "ArrayTypeName",
+ "src": "4695:8:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
+ "typeString": "string[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4694:22:3"
+ },
+ "returnParameters": {
+ "id": 1052,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1051,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1053,
+ "src": "4740:16:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct Tuple20[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1049,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1048,
+ "name": "Tuple20",
+ "nameLocations": [
+ "4740:7:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1263,
+ "src": "4740:7:3"
+ },
+ "referencedDeclaration": 1263,
+ "src": "4740:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple20_$1263_storage_ptr",
+ "typeString": "struct Tuple20"
+ }
+ },
+ "id": 1050,
+ "nodeType": "ArrayTypeName",
+ "src": "4740:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple20_$1263_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple20[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4739:18:3"
+ },
+ "scope": 1248,
+ "src": "4665:93:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1054,
+ "nodeType": "StructuredDocumentation",
+ "src": "4761:370:3",
+ "text": "Set the sponsor of the collection.\n @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.\n @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.\n @dev EVM selector for this function is: 0x7623402e,\n or in textual repr: setCollectionSponsor(address)"
+ },
+ "functionSelector": "7623402e",
+ "id": 1059,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionSponsor",
+ "nameLocation": "5142:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1057,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1056,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "5171:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1059,
+ "src": "5163:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1055,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5163:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5162:17:3"
+ },
+ "returnParameters": {
+ "id": 1058,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5188:0:3"
+ },
+ "scope": 1248,
+ "src": "5133:56:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1060,
+ "nodeType": "StructuredDocumentation",
+ "src": "5192:399:3",
+ "text": "Set the sponsor of the collection.\n @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.\n @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.\n @dev EVM selector for this function is: 0x84a1d5a8,\n or in textual repr: setCollectionSponsorCross((address,uint256))"
+ },
+ "functionSelector": "84a1d5a8",
+ "id": 1066,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionSponsorCross",
+ "nameLocation": "5602:25:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1064,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1063,
+ "mutability": "mutable",
+ "name": "sponsor",
+ "nameLocation": "5651:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1066,
+ "src": "5628:30:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1062,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1061,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "5628:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "5628:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "5628:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5627:32:3"
+ },
+ "returnParameters": {
+ "id": 1065,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5668:0:3"
+ },
+ "scope": 1248,
+ "src": "5593:76:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1067,
+ "nodeType": "StructuredDocumentation",
+ "src": "5672:152:3",
+ "text": "Whether there is a pending sponsor.\n @dev EVM selector for this function is: 0x058ac185,\n or in textual repr: hasCollectionPendingSponsor()"
+ },
+ "functionSelector": "058ac185",
+ "id": 1072,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "hasCollectionPendingSponsor",
+ "nameLocation": "5835:27:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1068,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5862:2:3"
+ },
+ "returnParameters": {
+ "id": 1071,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1070,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1072,
+ "src": "5888:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1069,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "5888:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5887:6:3"
+ },
+ "scope": 1248,
+ "src": "5826:68:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1073,
+ "nodeType": "StructuredDocumentation",
+ "src": "5897:256:3",
+ "text": "Collection sponsorship confirmation.\n @dev After setting the sponsor for the collection, it must be confirmed with this function.\n @dev EVM selector for this function is: 0x3c50e97a,\n or in textual repr: confirmCollectionSponsorship()"
+ },
+ "functionSelector": "3c50e97a",
+ "id": 1076,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "confirmCollectionSponsorship",
+ "nameLocation": "6164:28:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1074,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6192:2:3"
+ },
+ "returnParameters": {
+ "id": 1075,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6203:0:3"
+ },
+ "scope": 1248,
+ "src": "6155:49:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1077,
+ "nodeType": "StructuredDocumentation",
+ "src": "6207:139:3",
+ "text": "Remove collection sponsor.\n @dev EVM selector for this function is: 0x6e0326a3,\n or in textual repr: removeCollectionSponsor()"
+ },
+ "functionSelector": "6e0326a3",
+ "id": 1080,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionSponsor",
+ "nameLocation": "6357:23:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1078,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6380:2:3"
+ },
+ "returnParameters": {
+ "id": 1079,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6391:0:3"
+ },
+ "scope": 1248,
+ "src": "6348:44:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1081,
+ "nodeType": "StructuredDocumentation",
+ "src": "6395:270:3",
+ "text": "Get current sponsor.\n @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error \"Contract has no sponsor\" throw.\n @dev EVM selector for this function is: 0x6ec0a9f1,\n or in textual repr: collectionSponsor()"
+ },
+ "functionSelector": "6ec0a9f1",
+ "id": 1087,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionSponsor",
+ "nameLocation": "6676:17:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1082,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6693:2:3"
+ },
+ "returnParameters": {
+ "id": 1086,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1085,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1087,
+ "src": "6719:14:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple23_$1258_memory_ptr",
+ "typeString": "struct Tuple23"
+ },
+ "typeName": {
+ "id": 1084,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1083,
+ "name": "Tuple23",
+ "nameLocations": [
+ "6719:7:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1258,
+ "src": "6719:7:3"
+ },
+ "referencedDeclaration": 1258,
+ "src": "6719:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple23_$1258_storage_ptr",
+ "typeString": "struct Tuple23"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6718:16:3"
+ },
+ "scope": 1248,
+ "src": "6667:68:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1088,
+ "nodeType": "StructuredDocumentation",
+ "src": "6738:459:3",
+ "text": "Set limits for the collection.\n @dev Throws error if limit not found.\n @param limit Name of the limit. Valid names:\n \t\"accountTokenOwnershipLimit\",\n \t\"sponsoredDataSize\",\n \t\"sponsoredDataRateLimit\",\n \t\"tokenLimit\",\n \t\"sponsorTransferTimeout\",\n \t\"sponsorApproveTimeout\"\n @param value Value of the limit.\n @dev EVM selector for this function is: 0x6a3841db,\n or in textual repr: setCollectionLimit(string,uint32)"
+ },
+ "functionSelector": "6a3841db",
+ "id": 1095,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionLimit",
+ "nameLocation": "7208:18:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1093,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1090,
+ "mutability": "mutable",
+ "name": "limit",
+ "nameLocation": "7241:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1095,
+ "src": "7227:19:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1089,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7227:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1092,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7255:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1095,
+ "src": "7248:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ },
+ "typeName": {
+ "id": 1091,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "7248:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7226:35:3"
+ },
+ "returnParameters": {
+ "id": 1094,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7270:0:3"
+ },
+ "scope": 1248,
+ "src": "7199:72:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1096,
+ "nodeType": "StructuredDocumentation",
+ "src": "7274:356:3",
+ "text": "Set limits for the collection.\n @dev Throws error if limit not found.\n @param limit Name of the limit. Valid names:\n \t\"ownerCanTransfer\",\n \t\"ownerCanDestroy\",\n \t\"transfersEnabled\"\n @param value Value of the limit.\n @dev EVM selector for this function is: 0x993b7fba,\n or in textual repr: setCollectionLimit(string,bool)"
+ },
+ "functionSelector": "993b7fba",
+ "id": 1103,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionLimit",
+ "nameLocation": "7641:18:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1101,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1098,
+ "mutability": "mutable",
+ "name": "limit",
+ "nameLocation": "7674:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1103,
+ "src": "7660:19:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1097,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "7660:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1100,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7686:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1103,
+ "src": "7681:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1099,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "7681:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7659:33:3"
+ },
+ "returnParameters": {
+ "id": 1102,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7701:0:3"
+ },
+ "scope": 1248,
+ "src": "7632:70:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1104,
+ "nodeType": "StructuredDocumentation",
+ "src": "7705:126:3",
+ "text": "Get contract address.\n @dev EVM selector for this function is: 0xf6b4dfb4,\n or in textual repr: contractAddress()"
+ },
+ "functionSelector": "f6b4dfb4",
+ "id": 1109,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "contractAddress",
+ "nameLocation": "7842:15:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1105,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7857:2:3"
+ },
+ "returnParameters": {
+ "id": 1108,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1107,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1109,
+ "src": "7883:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1106,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7883:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7882:9:3"
+ },
+ "scope": 1248,
+ "src": "7833:59:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1110,
+ "nodeType": "StructuredDocumentation",
+ "src": "7895:209:3",
+ "text": "Add collection admin.\n @param newAdmin Cross account administrator address.\n @dev EVM selector for this function is: 0x859aa7d6,\n or in textual repr: addCollectionAdminCross((address,uint256))"
+ },
+ "functionSelector": "859aa7d6",
+ "id": 1116,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addCollectionAdminCross",
+ "nameLocation": "8115:23:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1114,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1113,
+ "mutability": "mutable",
+ "name": "newAdmin",
+ "nameLocation": "8162:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1116,
+ "src": "8139:31:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1112,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1111,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "8139:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "8139:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "8139:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8138:33:3"
+ },
+ "returnParameters": {
+ "id": 1115,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8180:0:3"
+ },
+ "scope": 1248,
+ "src": "8106:75:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1117,
+ "nodeType": "StructuredDocumentation",
+ "src": "8184:212:3",
+ "text": "Remove collection admin.\n @param admin Cross account administrator address.\n @dev EVM selector for this function is: 0x6c0cd173,\n or in textual repr: removeCollectionAdminCross((address,uint256))"
+ },
+ "functionSelector": "6c0cd173",
+ "id": 1123,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionAdminCross",
+ "nameLocation": "8407:26:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1121,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1120,
+ "mutability": "mutable",
+ "name": "admin",
+ "nameLocation": "8457:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1123,
+ "src": "8434:28:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1119,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1118,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "8434:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "8434:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "8434:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8433:30:3"
+ },
+ "returnParameters": {
+ "id": 1122,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8472:0:3"
+ },
+ "scope": 1248,
+ "src": "8398:75:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1124,
+ "nodeType": "StructuredDocumentation",
+ "src": "8476:193:3",
+ "text": "Add collection admin.\n @param newAdmin Address of the added administrator.\n @dev EVM selector for this function is: 0x92e462c7,\n or in textual repr: addCollectionAdmin(address)"
+ },
+ "functionSelector": "92e462c7",
+ "id": 1129,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addCollectionAdmin",
+ "nameLocation": "8680:18:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1127,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1126,
+ "mutability": "mutable",
+ "name": "newAdmin",
+ "nameLocation": "8707:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1129,
+ "src": "8699:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1125,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8699:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8698:18:3"
+ },
+ "returnParameters": {
+ "id": 1128,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8725:0:3"
+ },
+ "scope": 1248,
+ "src": "8671:55:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1130,
+ "nodeType": "StructuredDocumentation",
+ "src": "8729:203:3",
+ "text": "Remove collection admin.\n @param admin Address of the removed administrator.\n @dev EVM selector for this function is: 0xfafd7b42,\n or in textual repr: removeCollectionAdmin(address)"
+ },
+ "functionSelector": "fafd7b42",
+ "id": 1135,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeCollectionAdmin",
+ "nameLocation": "8943:21:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1133,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1132,
+ "mutability": "mutable",
+ "name": "admin",
+ "nameLocation": "8973:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1135,
+ "src": "8965:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1131,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8965:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8964:15:3"
+ },
+ "returnParameters": {
+ "id": 1134,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8988:0:3"
+ },
+ "scope": 1248,
+ "src": "8934:55:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1136,
+ "nodeType": "StructuredDocumentation",
+ "src": "8992:251:3",
+ "text": "Toggle accessibility of collection nesting.\n @param enable If \"true\" degenerates to nesting: 'Owner' else to nesting: 'Disabled'\n @dev EVM selector for this function is: 0x112d4586,\n or in textual repr: setCollectionNesting(bool)"
+ },
+ "functionSelector": "112d4586",
+ "id": 1141,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionNesting",
+ "nameLocation": "9254:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1139,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1138,
+ "mutability": "mutable",
+ "name": "enable",
+ "nameLocation": "9280:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1141,
+ "src": "9275:11:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1137,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9275:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9274:13:3"
+ },
+ "returnParameters": {
+ "id": 1140,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9296:0:3"
+ },
+ "scope": 1248,
+ "src": "9245:52:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1142,
+ "nodeType": "StructuredDocumentation",
+ "src": "9300:367:3",
+ "text": "Toggle accessibility of collection nesting.\n @param enable If \"true\" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'\n @param collections Addresses of collections that will be available for nesting.\n @dev EVM selector for this function is: 0x64872396,\n or in textual repr: setCollectionNesting(bool,address[])"
+ },
+ "functionSelector": "64872396",
+ "id": 1150,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionNesting",
+ "nameLocation": "9678:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1148,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1144,
+ "mutability": "mutable",
+ "name": "enable",
+ "nameLocation": "9704:6:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1150,
+ "src": "9699:11:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1143,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9699:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1147,
+ "mutability": "mutable",
+ "name": "collections",
+ "nameLocation": "9729:11:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1150,
+ "src": "9712:28:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1145,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9712:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1146,
+ "nodeType": "ArrayTypeName",
+ "src": "9712:9:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9698:43:3"
+ },
+ "returnParameters": {
+ "id": 1149,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9750:0:3"
+ },
+ "scope": 1248,
+ "src": "9669:82:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1151,
+ "nodeType": "StructuredDocumentation",
+ "src": "9754:217:3",
+ "text": "Set the collection access method.\n @param mode Access mode\n \t0 for Normal\n \t1 for AllowList\n @dev EVM selector for this function is: 0x41835d4c,\n or in textual repr: setCollectionAccess(uint8)"
+ },
+ "functionSelector": "41835d4c",
+ "id": 1156,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionAccess",
+ "nameLocation": "9982:19:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1154,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1153,
+ "mutability": "mutable",
+ "name": "mode",
+ "nameLocation": "10008:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1156,
+ "src": "10002:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 1152,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "10002:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10001:12:3"
+ },
+ "returnParameters": {
+ "id": 1155,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10022:0:3"
+ },
+ "scope": 1248,
+ "src": "9973:50:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1157,
+ "nodeType": "StructuredDocumentation",
+ "src": "10026:201:3",
+ "text": "Checks that user allowed to operate with collection.\n @param user User address to check.\n @dev EVM selector for this function is: 0xd63a8e11,\n or in textual repr: allowed(address)"
+ },
+ "functionSelector": "d63a8e11",
+ "id": 1164,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowed",
+ "nameLocation": "10238:7:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1160,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1159,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10254:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1164,
+ "src": "10246:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1158,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10246:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10245:14:3"
+ },
+ "returnParameters": {
+ "id": 1163,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1162,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1164,
+ "src": "10283:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1161,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "10283:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10282:6:3"
+ },
+ "scope": 1248,
+ "src": "10229:60:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1165,
+ "nodeType": "StructuredDocumentation",
+ "src": "10292:203:3",
+ "text": "Add the user to the allowed list.\n @param user Address of a trusted user.\n @dev EVM selector for this function is: 0x67844fe6,\n or in textual repr: addToCollectionAllowList(address)"
+ },
+ "functionSelector": "67844fe6",
+ "id": 1170,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToCollectionAllowList",
+ "nameLocation": "10506:24:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1168,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1167,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10539:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1170,
+ "src": "10531:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1166,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10531:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10530:14:3"
+ },
+ "returnParameters": {
+ "id": 1169,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10553:0:3"
+ },
+ "scope": 1248,
+ "src": "10497:57:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1171,
+ "nodeType": "StructuredDocumentation",
+ "src": "10557:211:3",
+ "text": "Add user to allowed list.\n @param user User cross account address.\n @dev EVM selector for this function is: 0xa0184a3a,\n or in textual repr: addToCollectionAllowListCross((address,uint256))"
+ },
+ "functionSelector": "a0184a3a",
+ "id": 1177,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToCollectionAllowListCross",
+ "nameLocation": "10779:29:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1175,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1174,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "10832:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1177,
+ "src": "10809:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1173,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1172,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "10809:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "10809:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "10809:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10808:29:3"
+ },
+ "returnParameters": {
+ "id": 1176,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10846:0:3"
+ },
+ "scope": 1248,
+ "src": "10770:77:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1178,
+ "nodeType": "StructuredDocumentation",
+ "src": "10850:213:3",
+ "text": "Remove the user from the allowed list.\n @param user Address of a removed user.\n @dev EVM selector for this function is: 0x85c51acb,\n or in textual repr: removeFromCollectionAllowList(address)"
+ },
+ "functionSelector": "85c51acb",
+ "id": 1183,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromCollectionAllowList",
+ "nameLocation": "11074:29:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1181,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1180,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11112:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1183,
+ "src": "11104:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1179,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11104:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11103:14:3"
+ },
+ "returnParameters": {
+ "id": 1182,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11126:0:3"
+ },
+ "scope": 1248,
+ "src": "11065:62:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1184,
+ "nodeType": "StructuredDocumentation",
+ "src": "11130:221:3",
+ "text": "Remove user from allowed list.\n @param user User cross account address.\n @dev EVM selector for this function is: 0x09ba452a,\n or in textual repr: removeFromCollectionAllowListCross((address,uint256))"
+ },
+ "functionSelector": "09ba452a",
+ "id": 1190,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromCollectionAllowListCross",
+ "nameLocation": "11362:34:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1188,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1187,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11420:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1190,
+ "src": "11397:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1186,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1185,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "11397:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "11397:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "11397:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11396:29:3"
+ },
+ "returnParameters": {
+ "id": 1189,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11434:0:3"
+ },
+ "scope": 1248,
+ "src": "11353:82:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1191,
+ "nodeType": "StructuredDocumentation",
+ "src": "11438:185:3",
+ "text": "Switch permission for minting.\n @param mode Enable if \"true\".\n @dev EVM selector for this function is: 0x00018e84,\n or in textual repr: setCollectionMintMode(bool)"
+ },
+ "functionSelector": "00018e84",
+ "id": 1196,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setCollectionMintMode",
+ "nameLocation": "11634:21:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1194,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1193,
+ "mutability": "mutable",
+ "name": "mode",
+ "nameLocation": "11661:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1196,
+ "src": "11656:9:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1192,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "11656:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11655:11:3"
+ },
+ "returnParameters": {
+ "id": 1195,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "11675:0:3"
+ },
+ "scope": 1248,
+ "src": "11625:51:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1197,
+ "nodeType": "StructuredDocumentation",
+ "src": "11679:262:3",
+ "text": "Check that account is the owner or admin of the collection\n @param user account to verify\n @return \"true\" if account is the owner or admin\n @dev EVM selector for this function is: 0x9811b0c7,\n or in textual repr: isOwnerOrAdmin(address)"
+ },
+ "functionSelector": "9811b0c7",
+ "id": 1204,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isOwnerOrAdmin",
+ "nameLocation": "11952:14:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1200,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1199,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "11975:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1204,
+ "src": "11967:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1198,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "11967:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "11966:14:3"
+ },
+ "returnParameters": {
+ "id": 1203,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1202,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1204,
+ "src": "12004:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1201,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12004:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12003:6:3"
+ },
+ "scope": 1248,
+ "src": "11943:67:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1205,
+ "nodeType": "StructuredDocumentation",
+ "src": "12013:288:3",
+ "text": "Check that account is the owner or admin of the collection\n @param user User cross account to verify\n @return \"true\" if account is the owner or admin\n @dev EVM selector for this function is: 0x3e75a905,\n or in textual repr: isOwnerOrAdminCross((address,uint256))"
+ },
+ "functionSelector": "3e75a905",
+ "id": 1213,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isOwnerOrAdminCross",
+ "nameLocation": "12312:19:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1209,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1208,
+ "mutability": "mutable",
+ "name": "user",
+ "nameLocation": "12355:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1213,
+ "src": "12332:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1207,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1206,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "12332:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "12332:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "12332:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12331:29:3"
+ },
+ "returnParameters": {
+ "id": 1212,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1211,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1213,
+ "src": "12384:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1210,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "12384:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12383:6:3"
+ },
+ "scope": 1248,
+ "src": "12303:87:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1214,
+ "nodeType": "StructuredDocumentation",
+ "src": "12393:187:3",
+ "text": "Returns collection type\n @return `Fungible` or `NFT` or `ReFungible`\n @dev EVM selector for this function is: 0xd34b55b8,\n or in textual repr: uniqueCollectionType()"
+ },
+ "functionSelector": "d34b55b8",
+ "id": 1219,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "uniqueCollectionType",
+ "nameLocation": "12591:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1215,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12611:2:3"
+ },
+ "returnParameters": {
+ "id": 1218,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1217,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1219,
+ "src": "12637:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1216,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "12637:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12636:15:3"
+ },
+ "scope": 1248,
+ "src": "12582:70:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1220,
+ "nodeType": "StructuredDocumentation",
+ "src": "12655:272:3",
+ "text": "Get collection owner.\n @return Tuble with sponsor address and his substrate mirror.\n If address is canonical then substrate mirror is zero and vice versa.\n @dev EVM selector for this function is: 0xdf727d3b,\n or in textual repr: collectionOwner()"
+ },
+ "functionSelector": "df727d3b",
+ "id": 1226,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionOwner",
+ "nameLocation": "12938:15:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1221,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "12953:2:3"
+ },
+ "returnParameters": {
+ "id": 1225,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1224,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1226,
+ "src": "12979:22:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1223,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1222,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "12979:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "12979:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "12979:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "12978:24:3"
+ },
+ "scope": 1248,
+ "src": "12929:74:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1227,
+ "nodeType": "StructuredDocumentation",
+ "src": "13006:258:3",
+ "text": "Changes collection owner to another account\n @dev Owner can be changed only by current owner\n @param newOwner new owner account\n @dev EVM selector for this function is: 0x4f53e226,\n or in textual repr: changeCollectionOwner(address)"
+ },
+ "functionSelector": "4f53e226",
+ "id": 1232,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "changeCollectionOwner",
+ "nameLocation": "13275:21:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1230,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1229,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "13305:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1232,
+ "src": "13297:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1228,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "13297:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13296:18:3"
+ },
+ "returnParameters": {
+ "id": 1231,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13323:0:3"
+ },
+ "scope": 1248,
+ "src": "13266:58:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1233,
+ "nodeType": "StructuredDocumentation",
+ "src": "13327:291:3",
+ "text": "Get collection administrators\n @return Vector of tuples with admins address and his substrate mirror.\n If address is canonical then substrate mirror is zero and vice versa.\n @dev EVM selector for this function is: 0x5813216b,\n or in textual repr: collectionAdmins()"
+ },
+ "functionSelector": "5813216b",
+ "id": 1240,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "collectionAdmins",
+ "nameLocation": "13629:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1234,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "13645:2:3"
+ },
+ "returnParameters": {
+ "id": 1239,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1238,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1240,
+ "src": "13671:24:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_EthCrossAccount_$1253_memory_ptr_$dyn_memory_ptr",
+ "typeString": "struct EthCrossAccount[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1236,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1235,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "13671:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "13671:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "13671:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "id": 1237,
+ "nodeType": "ArrayTypeName",
+ "src": "13671:17:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_EthCrossAccount_$1253_storage_$dyn_storage_ptr",
+ "typeString": "struct EthCrossAccount[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13670:26:3"
+ },
+ "scope": 1248,
+ "src": "13620:77:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1241,
+ "nodeType": "StructuredDocumentation",
+ "src": "13700:266:3",
+ "text": "Changes collection owner to another account\n @dev Owner can be changed only by current owner\n @param newOwner new owner cross account\n @dev EVM selector for this function is: 0xe5c9913f,\n or in textual repr: setOwnerCross((address,uint256))"
+ },
+ "functionSelector": "e5c9913f",
+ "id": 1247,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setOwnerCross",
+ "nameLocation": "13977:13:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1245,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1244,
+ "mutability": "mutable",
+ "name": "newOwner",
+ "nameLocation": "14014:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1247,
+ "src": "13991:31:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1243,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1242,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "13991:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "13991:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "13991:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "13990:33:3"
+ },
+ "returnParameters": {
+ "id": 1246,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "14032:0:3"
+ },
+ "scope": 1248,
+ "src": "13968:65:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "2883:11152:3",
+ "usedErrors": []
+ },
+ {
+ "canonicalName": "EthCrossAccount",
+ "id": 1253,
+ "members": [
+ {
+ "constant": false,
+ "id": 1250,
+ "mutability": "mutable",
+ "name": "eth",
+ "nameLocation": "14101:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1253,
+ "src": "14093:11:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1249,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14093:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1252,
+ "mutability": "mutable",
+ "name": "sub",
+ "nameLocation": "14115:3:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1253,
+ "src": "14107:11:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1251,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14107:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "EthCrossAccount",
+ "nameLocation": "14074:15:3",
+ "nodeType": "StructDefinition",
+ "scope": 1573,
+ "src": "14067:54:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "Tuple23",
+ "id": 1258,
+ "members": [
+ {
+ "constant": false,
+ "id": 1255,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "14175:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1258,
+ "src": "14167:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1254,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "14167:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1257,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "14193:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1258,
+ "src": "14185:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1256,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "14185:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple23",
+ "nameLocation": "14156:7:3",
+ "nodeType": "StructDefinition",
+ "scope": 1573,
+ "src": "14149:54:3",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "Tuple20",
+ "id": 1263,
+ "members": [
+ {
+ "constant": false,
+ "id": 1260,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "14256:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1263,
+ "src": "14249:14:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1259,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "14249:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1262,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "14272:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1263,
+ "src": "14266:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1261,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "14266:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple20",
+ "nameLocation": "14238:7:3",
+ "nodeType": "StructDefinition",
+ "scope": 1573,
+ "src": "14231:51:3",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1265,
+ "name": "Dummy",
+ "nameLocations": [
+ "14377:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "14377:5:3"
+ },
+ "id": 1266,
+ "nodeType": "InheritanceSpecifier",
+ "src": "14377:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1267,
+ "name": "ERC165",
+ "nameLocations": [
+ "14384:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "14384:6:3"
+ },
+ "id": 1268,
+ "nodeType": "InheritanceSpecifier",
+ "src": "14384:6:3"
+ }
+ ],
+ "canonicalName": "ERC721Metadata",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1264,
+ "nodeType": "StructuredDocumentation",
+ "src": "14284:65:3",
+ "text": "@dev the ERC-165 identifier for this interface is 0x5b5e139f"
+ },
+ "fullyImplemented": false,
+ "id": 1277,
+ "linearizedBaseContracts": [
+ 1277,
+ 944,
+ 934
+ ],
+ "name": "ERC721Metadata",
+ "nameLocation": "14359:14:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1269,
+ "nodeType": "StructuredDocumentation",
+ "src": "15015:784:3",
+ "text": "@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev If the token has a `url` property and it is not empty, it is returned.\n Else If the collection does not have a property with key `schemaName` or its value is not equal to `ERC721Metadata`, it return an error `tokenURI not set`.\n If the collection property `baseURI` is empty or absent, return \"\" (empty string)\n otherwise, if token property `suffix` present and is non-empty, return concatenation of baseURI and suffix\n otherwise, return concatenation of `baseURI` and stringified token id (decimal stringifying, without paddings).\n @return token's const_metadata\n @dev EVM selector for this function is: 0xc87b56dd,\n or in textual repr: tokenURI(uint256)"
+ },
+ "functionSelector": "c87b56dd",
+ "id": 1276,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenURI",
+ "nameLocation": "15810:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1272,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1271,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "15827:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1276,
+ "src": "15819:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1270,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "15819:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15818:17:3"
+ },
+ "returnParameters": {
+ "id": 1275,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1274,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1276,
+ "src": "15859:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1273,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "15859:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "15858:15:3"
+ },
+ "scope": 1277,
+ "src": "15801:73:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "14349:1527:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1279,
+ "name": "Dummy",
+ "nameLocations": [
+ "16040:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "16040:5:3"
+ },
+ "id": 1280,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16040:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1281,
+ "name": "ERC165",
+ "nameLocations": [
+ "16047:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "16047:6:3"
+ },
+ "id": 1282,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16047:6:3"
+ }
+ ],
+ "canonicalName": "ERC721Burnable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1278,
+ "nodeType": "StructuredDocumentation",
+ "src": "15878:134:3",
+ "text": "@title ERC721 Token that can be irreversibly burned (destroyed).\n @dev the ERC-165 identifier for this interface is 0x42966c68"
+ },
+ "fullyImplemented": false,
+ "id": 1289,
+ "linearizedBaseContracts": [
+ 1289,
+ 944,
+ 934
+ ],
+ "name": "ERC721Burnable",
+ "nameLocation": "16022:14:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1283,
+ "nodeType": "StructuredDocumentation",
+ "src": "16057:295:3",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current RFT owner, or an authorized\n operator of the current owner.\n @param tokenId The RFT to approve\n @dev EVM selector for this function is: 0x42966c68,\n or in textual repr: burn(uint256)"
+ },
+ "functionSelector": "42966c68",
+ "id": 1288,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burn",
+ "nameLocation": "16363:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1286,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1285,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "16376:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1288,
+ "src": "16368:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1284,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "16368:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16367:17:3"
+ },
+ "returnParameters": {
+ "id": 1287,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16393:0:3"
+ },
+ "scope": 1289,
+ "src": "16354:40:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "16012:384:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ERC721UniqueMintableEvents",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1290,
+ "nodeType": "StructuredDocumentation",
+ "src": "16398:27:3",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 1293,
+ "linearizedBaseContracts": [
+ 1293
+ ],
+ "name": "ERC721UniqueMintableEvents",
+ "nameLocation": "16435:26:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "b828d9b5c78095deeeeff2eca2e5d4fe046ce3feb4c99702624a3fd384ad2dbc",
+ "id": 1292,
+ "name": "MintingFinished",
+ "nameLocation": "16471:15:3",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1291,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16486:2:3"
+ },
+ "src": "16465:24:3"
+ }
+ ],
+ "scope": 1573,
+ "src": "16425:66:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1295,
+ "name": "Dummy",
+ "nameLocations": [
+ "16625:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "16625:5:3"
+ },
+ "id": 1296,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16625:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1297,
+ "name": "ERC165",
+ "nameLocations": [
+ "16632:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "16632:6:3"
+ },
+ "id": 1298,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16632:6:3"
+ },
+ {
+ "baseName": {
+ "id": 1299,
+ "name": "ERC721UniqueMintableEvents",
+ "nameLocations": [
+ "16640:26:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1293,
+ "src": "16640:26:3"
+ },
+ "id": 1300,
+ "nodeType": "InheritanceSpecifier",
+ "src": "16640:26:3"
+ }
+ ],
+ "canonicalName": "ERC721UniqueMintable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1294,
+ "nodeType": "StructuredDocumentation",
+ "src": "16493:98:3",
+ "text": "@title ERC721 minting logic.\n @dev the ERC-165 identifier for this interface is 0x476ff149"
+ },
+ "fullyImplemented": false,
+ "id": 1331,
+ "linearizedBaseContracts": [
+ 1331,
+ 1293,
+ 944,
+ 934
+ ],
+ "name": "ERC721UniqueMintable",
+ "nameLocation": "16601:20:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1301,
+ "nodeType": "StructuredDocumentation",
+ "src": "16670:99:3",
+ "text": "@dev EVM selector for this function is: 0x05d2035b,\n or in textual repr: mintingFinished()"
+ },
+ "functionSelector": "05d2035b",
+ "id": 1306,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mintingFinished",
+ "nameLocation": "16780:15:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1302,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "16795:2:3"
+ },
+ "returnParameters": {
+ "id": 1305,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1304,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1306,
+ "src": "16821:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1303,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "16821:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "16820:6:3"
+ },
+ "scope": 1331,
+ "src": "16771:56:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1307,
+ "nodeType": "StructuredDocumentation",
+ "src": "16830:215:3",
+ "text": "@notice Function to mint token.\n @param to The new owner\n @return uint256 The id of the newly minted token\n @dev EVM selector for this function is: 0x6a627842,\n or in textual repr: mint(address)"
+ },
+ "functionSelector": "6a627842",
+ "id": 1314,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "17056:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1309,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "17069:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1314,
+ "src": "17061:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1308,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "17061:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17060:12:3"
+ },
+ "returnParameters": {
+ "id": 1313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1314,
+ "src": "17091:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1311,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17091:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17090:9:3"
+ },
+ "scope": 1331,
+ "src": "17047:53:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1315,
+ "nodeType": "StructuredDocumentation",
+ "src": "17528:332:3",
+ "text": "@notice Function to mint token with the given tokenUri.\n @param to The new owner\n @param tokenUri Token URI that would be stored in the NFT properties\n @return uint256 The id of the newly minted token\n @dev EVM selector for this function is: 0x45c17782,\n or in textual repr: mintWithTokenURI(address,string)"
+ },
+ "functionSelector": "45c17782",
+ "id": 1324,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mintWithTokenURI",
+ "nameLocation": "17871:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1320,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1317,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "17896:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1324,
+ "src": "17888:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1316,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "17888:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1319,
+ "mutability": "mutable",
+ "name": "tokenUri",
+ "nameLocation": "17914:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1324,
+ "src": "17900:22:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1318,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "17900:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17887:36:3"
+ },
+ "returnParameters": {
+ "id": 1323,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1322,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1324,
+ "src": "17942:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1321,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "17942:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "17941:9:3"
+ },
+ "scope": 1331,
+ "src": "17862:89:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1325,
+ "nodeType": "StructuredDocumentation",
+ "src": "18535:123:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x7d64bcb4,\n or in textual repr: finishMinting()"
+ },
+ "functionSelector": "7d64bcb4",
+ "id": 1330,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "finishMinting",
+ "nameLocation": "18669:13:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1326,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "18682:2:3"
+ },
+ "returnParameters": {
+ "id": 1329,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1328,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1330,
+ "src": "18703:4:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1327,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "18703:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "18702:6:3"
+ },
+ "scope": 1331,
+ "src": "18660:49:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "16591:2120:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1333,
+ "name": "Dummy",
+ "nameLocations": [
+ "18855:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "18855:5:3"
+ },
+ "id": 1334,
+ "nodeType": "InheritanceSpecifier",
+ "src": "18855:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1335,
+ "name": "ERC165",
+ "nameLocations": [
+ "18862:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "18862:6:3"
+ },
+ "id": 1336,
+ "nodeType": "InheritanceSpecifier",
+ "src": "18862:6:3"
+ }
+ ],
+ "canonicalName": "ERC721UniqueExtensions",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1332,
+ "nodeType": "StructuredDocumentation",
+ "src": "18713:106:3",
+ "text": "@title Unique extensions for ERC721.\n @dev the ERC-165 identifier for this interface is 0x81feb398"
+ },
+ "fullyImplemented": false,
+ "id": 1400,
+ "linearizedBaseContracts": [
+ 1400,
+ 944,
+ 934
+ ],
+ "name": "ERC721UniqueExtensions",
+ "nameLocation": "18829:22:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1337,
+ "nodeType": "StructuredDocumentation",
+ "src": "18872:162:3",
+ "text": "@notice A descriptive name for a collection of NFTs in this contract\n @dev EVM selector for this function is: 0x06fdde03,\n or in textual repr: name()"
+ },
+ "functionSelector": "06fdde03",
+ "id": 1342,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "19045:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1338,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19049:2:3"
+ },
+ "returnParameters": {
+ "id": 1341,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1340,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1342,
+ "src": "19075:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1339,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "19075:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19074:15:3"
+ },
+ "scope": 1400,
+ "src": "19036:54:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1343,
+ "nodeType": "StructuredDocumentation",
+ "src": "19093:149:3",
+ "text": "@notice An abbreviated name for NFTs in this contract\n @dev EVM selector for this function is: 0x95d89b41,\n or in textual repr: symbol()"
+ },
+ "functionSelector": "95d89b41",
+ "id": 1348,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "19253:6:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1344,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19259:2:3"
+ },
+ "returnParameters": {
+ "id": 1347,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1346,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1348,
+ "src": "19285:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1345,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "19285:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19284:15:3"
+ },
+ "scope": 1400,
+ "src": "19244:56:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1349,
+ "nodeType": "StructuredDocumentation",
+ "src": "19303:408:3",
+ "text": "@notice Transfer ownership of an RFT\n @dev Throws unless `msg.sender` is the current owner. Throws if `to`\n is the zero address. Throws if `tokenId` is not a valid RFT.\n Throws if RFT pieces have multiple owners.\n @param to The new owner\n @param tokenId The RFT to transfer\n @dev EVM selector for this function is: 0xa9059cbb,\n or in textual repr: transfer(address,uint256)"
+ },
+ "functionSelector": "a9059cbb",
+ "id": 1356,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "19722:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1354,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1351,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "19739:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1356,
+ "src": "19731:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1350,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "19731:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1353,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "19751:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1356,
+ "src": "19743:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1352,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "19743:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "19730:29:3"
+ },
+ "returnParameters": {
+ "id": 1355,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "19768:0:3"
+ },
+ "scope": 1400,
+ "src": "19713:56:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1357,
+ "nodeType": "StructuredDocumentation",
+ "src": "19772:445:3",
+ "text": "@notice Transfer ownership of an RFT\n @dev Throws unless `msg.sender` is the current owner. Throws if `to`\n is the zero address. Throws if `tokenId` is not a valid RFT.\n Throws if RFT pieces have multiple owners.\n @param to The new owner\n @param tokenId The RFT to transfer\n @dev EVM selector for this function is: 0xd5cf430b,\n or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)"
+ },
+ "functionSelector": "d5cf430b",
+ "id": 1368,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFromCross",
+ "nameLocation": "20228:17:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1366,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1360,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "20272:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1368,
+ "src": "20249:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1359,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1358,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "20249:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "20249:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "20249:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1363,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "20303:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1368,
+ "src": "20280:25:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1362,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1361,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "20280:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "20280:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "20280:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1365,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "20317:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1368,
+ "src": "20309:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1364,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20309:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20245:82:3"
+ },
+ "returnParameters": {
+ "id": 1367,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "20336:0:3"
+ },
+ "scope": 1400,
+ "src": "20219:118:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1369,
+ "nodeType": "StructuredDocumentation",
+ "src": "20340:515:3",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this RFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid RFT.\n Throws if RFT pieces have multiple owners.\n @param from The current owner of the RFT\n @param tokenId The RFT to transfer\n @dev EVM selector for this function is: 0x79cc6790,\n or in textual repr: burnFrom(address,uint256)"
+ },
+ "functionSelector": "79cc6790",
+ "id": 1376,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burnFrom",
+ "nameLocation": "20866:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1374,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1371,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "20883:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1376,
+ "src": "20875:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1370,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "20875:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1373,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "20897:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1376,
+ "src": "20889:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1372,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "20889:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "20874:31:3"
+ },
+ "returnParameters": {
+ "id": 1375,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "20914:0:3"
+ },
+ "scope": 1400,
+ "src": "20857:58:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1377,
+ "nodeType": "StructuredDocumentation",
+ "src": "20918:530:3",
+ "text": "@notice Burns a specific ERC721 token.\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this RFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid RFT.\n Throws if RFT pieces have multiple owners.\n @param from The current owner of the RFT\n @param tokenId The RFT to transfer\n @dev EVM selector for this function is: 0xbb2f5a58,\n or in textual repr: burnFromCross((address,uint256),uint256)"
+ },
+ "functionSelector": "bb2f5a58",
+ "id": 1385,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burnFromCross",
+ "nameLocation": "21459:13:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1383,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1380,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "21496:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1385,
+ "src": "21473:27:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount"
+ },
+ "typeName": {
+ "id": 1379,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1378,
+ "name": "EthCrossAccount",
+ "nameLocations": [
+ "21473:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1253,
+ "src": "21473:15:3"
+ },
+ "referencedDeclaration": 1253,
+ "src": "21473:15:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_storage_ptr",
+ "typeString": "struct EthCrossAccount"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1382,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "21510:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1385,
+ "src": "21502:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1381,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21502:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21472:46:3"
+ },
+ "returnParameters": {
+ "id": 1384,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21527:0:3"
+ },
+ "scope": 1400,
+ "src": "21450:78:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1386,
+ "nodeType": "StructuredDocumentation",
+ "src": "21531:134:3",
+ "text": "@notice Returns next free RFT ID.\n @dev EVM selector for this function is: 0x75794a3c,\n or in textual repr: nextTokenId()"
+ },
+ "functionSelector": "75794a3c",
+ "id": 1391,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "nextTokenId",
+ "nameLocation": "21676:11:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1387,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "21687:2:3"
+ },
+ "returnParameters": {
+ "id": 1390,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1389,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1391,
+ "src": "21713:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1388,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "21713:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "21712:9:3"
+ },
+ "scope": 1400,
+ "src": "21667:55:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1392,
+ "nodeType": "StructuredDocumentation",
+ "src": "22797:196:3",
+ "text": "Returns EVM address for refungible token\n @param token ID of the token\n @dev EVM selector for this function is: 0xab76fac6,\n or in textual repr: tokenContractAddress(uint256)"
+ },
+ "functionSelector": "ab76fac6",
+ "id": 1399,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenContractAddress",
+ "nameLocation": "23004:20:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1395,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1394,
+ "mutability": "mutable",
+ "name": "token",
+ "nameLocation": "23033:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1399,
+ "src": "23025:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1393,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23025:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23024:15:3"
+ },
+ "returnParameters": {
+ "id": 1398,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1397,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1399,
+ "src": "23063:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1396,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "23063:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23062:9:3"
+ },
+ "scope": 1400,
+ "src": "22995:77:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "18819:4255:3",
+ "usedErrors": []
+ },
+ {
+ "canonicalName": "Tuple9",
+ "id": 1405,
+ "members": [
+ {
+ "constant": false,
+ "id": 1402,
+ "mutability": "mutable",
+ "name": "field_0",
+ "nameLocation": "23127:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1405,
+ "src": "23119:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1401,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23119:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1404,
+ "mutability": "mutable",
+ "name": "field_1",
+ "nameLocation": "23144:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1405,
+ "src": "23137:14:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1403,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "23137:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Tuple9",
+ "nameLocation": "23109:6:3",
+ "nodeType": "StructDefinition",
+ "scope": 1573,
+ "src": "23102:52:3",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1407,
+ "name": "Dummy",
+ "nameLocations": [
+ "23382:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "23382:5:3"
+ },
+ "id": 1408,
+ "nodeType": "InheritanceSpecifier",
+ "src": "23382:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1409,
+ "name": "ERC165",
+ "nameLocations": [
+ "23389:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "23389:6:3"
+ },
+ "id": 1410,
+ "nodeType": "InheritanceSpecifier",
+ "src": "23389:6:3"
+ }
+ ],
+ "canonicalName": "ERC721Enumerable",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1406,
+ "nodeType": "StructuredDocumentation",
+ "src": "23156:196:3",
+ "text": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n @dev the ERC-165 identifier for this interface is 0x780e9d63"
+ },
+ "fullyImplemented": false,
+ "id": 1435,
+ "linearizedBaseContracts": [
+ 1435,
+ 944,
+ 934
+ ],
+ "name": "ERC721Enumerable",
+ "nameLocation": "23362:16:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1411,
+ "nodeType": "StructuredDocumentation",
+ "src": "23399:281:3",
+ "text": "@notice Enumerate valid RFTs\n @param index A counter less than `totalSupply()`\n @return The token identifier for the `index`th NFT,\n (sort order not specified)\n @dev EVM selector for this function is: 0x4f6ccce7,\n or in textual repr: tokenByIndex(uint256)"
+ },
+ "functionSelector": "4f6ccce7",
+ "id": 1418,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenByIndex",
+ "nameLocation": "23691:12:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1414,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1413,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "23712:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1418,
+ "src": "23704:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1412,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23704:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23703:15:3"
+ },
+ "returnParameters": {
+ "id": 1417,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1416,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1418,
+ "src": "23742:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1415,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23742:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23741:9:3"
+ },
+ "scope": 1435,
+ "src": "23682:69:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1419,
+ "nodeType": "StructuredDocumentation",
+ "src": "23754:139:3",
+ "text": "Not implemented\n @dev EVM selector for this function is: 0x2f745c59,\n or in textual repr: tokenOfOwnerByIndex(address,uint256)"
+ },
+ "functionSelector": "2f745c59",
+ "id": 1428,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "tokenOfOwnerByIndex",
+ "nameLocation": "23904:19:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1424,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1421,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "23932:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1428,
+ "src": "23924:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1420,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "23924:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1423,
+ "mutability": "mutable",
+ "name": "index",
+ "nameLocation": "23947:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1428,
+ "src": "23939:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1422,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23939:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23923:30:3"
+ },
+ "returnParameters": {
+ "id": 1427,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1426,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1428,
+ "src": "23977:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1425,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "23977:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "23976:9:3"
+ },
+ "scope": 1435,
+ "src": "23895:91:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1429,
+ "nodeType": "StructuredDocumentation",
+ "src": "23989:300:3",
+ "text": "@notice Count RFTs tracked by this contract\n @return A count of valid RFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address\n @dev EVM selector for this function is: 0x18160ddd,\n or in textual repr: totalSupply()"
+ },
+ "functionSelector": "18160ddd",
+ "id": 1434,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "24300:11:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1430,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "24311:2:3"
+ },
+ "returnParameters": {
+ "id": 1433,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1432,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1434,
+ "src": "24337:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1431,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24337:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24336:9:3"
+ },
+ "scope": 1435,
+ "src": "24291:55:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "23352:996:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ERC721Events",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1436,
+ "nodeType": "StructuredDocumentation",
+ "src": "24350:27:3",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 1461,
+ "linearizedBaseContracts": [
+ 1461
+ ],
+ "name": "ERC721Events",
+ "nameLocation": "24387:12:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 1444,
+ "name": "Transfer",
+ "nameLocation": "24409:8:3",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1443,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1438,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "24434:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1444,
+ "src": "24418:20:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1437,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24418:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1440,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "24456:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1444,
+ "src": "24440:18:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1439,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24440:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1442,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "24476:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1444,
+ "src": "24460:23:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1441,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24460:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24417:67:3"
+ },
+ "src": "24403:82:3"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 1452,
+ "name": "Approval",
+ "nameLocation": "24493:8:3",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1451,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1446,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "24518:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1452,
+ "src": "24502:21:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1445,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24502:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1448,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "24541:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1452,
+ "src": "24525:24:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1447,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24525:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1450,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "24567:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1452,
+ "src": "24551:23:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1449,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "24551:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24501:74:3"
+ },
+ "src": "24487:89:3"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31",
+ "id": 1460,
+ "name": "ApprovalForAll",
+ "nameLocation": "24584:14:3",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1459,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1454,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "24615:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "24599:21:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1453,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24599:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1456,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "24638:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "24622:24:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1455,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "24622:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1458,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "24653:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "24648:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1457,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "24648:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "24598:64:3"
+ },
+ "src": "24578:85:3"
+ }
+ ],
+ "scope": 1573,
+ "src": "24377:288:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1463,
+ "name": "Dummy",
+ "nameLocations": [
+ "24873:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "24873:5:3"
+ },
+ "id": 1464,
+ "nodeType": "InheritanceSpecifier",
+ "src": "24873:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1465,
+ "name": "ERC165",
+ "nameLocations": [
+ "24880:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "24880:6:3"
+ },
+ "id": 1466,
+ "nodeType": "InheritanceSpecifier",
+ "src": "24880:6:3"
+ },
+ {
+ "baseName": {
+ "id": 1467,
+ "name": "ERC721Events",
+ "nameLocations": [
+ "24888:12:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1461,
+ "src": "24888:12:3"
+ },
+ "id": 1468,
+ "nodeType": "InheritanceSpecifier",
+ "src": "24888:12:3"
+ }
+ ],
+ "canonicalName": "ERC721",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1462,
+ "nodeType": "StructuredDocumentation",
+ "src": "24667:186:3",
+ "text": "@title ERC-721 Non-Fungible Token Standard\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\n @dev the ERC-165 identifier for this interface is 0x58800161"
+ },
+ "fullyImplemented": false,
+ "id": 1551,
+ "linearizedBaseContracts": [
+ 1551,
+ 1461,
+ 944,
+ 934
+ ],
+ "name": "ERC721",
+ "nameLocation": "24863:6:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1469,
+ "nodeType": "StructuredDocumentation",
+ "src": "24904:407:3",
+ "text": "@notice Count all RFTs assigned to an owner\n @dev RFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param owner An address for whom to query the balance\n @return The number of RFTs owned by `owner`, possibly zero\n @dev EVM selector for this function is: 0x70a08231,\n or in textual repr: balanceOf(address)"
+ },
+ "functionSelector": "70a08231",
+ "id": 1476,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "25322:9:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1472,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1471,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "25340:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1476,
+ "src": "25332:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1470,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "25332:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25331:15:3"
+ },
+ "returnParameters": {
+ "id": 1475,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1474,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1476,
+ "src": "25370:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1473,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25370:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25369:9:3"
+ },
+ "scope": 1551,
+ "src": "25313:66:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1477,
+ "nodeType": "StructuredDocumentation",
+ "src": "25382:454:3",
+ "text": "@notice Find the owner of an RFT\n @dev RFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n Returns special 0xffffffffffffffffffffffffffffffffffffffff address for\n the tokens that are partially owned.\n @param tokenId The identifier for an RFT\n @return The address of the owner of the RFT\n @dev EVM selector for this function is: 0x6352211e,\n or in textual repr: ownerOf(uint256)"
+ },
+ "functionSelector": "6352211e",
+ "id": 1484,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ownerOf",
+ "nameLocation": "25847:7:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1480,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1479,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "25863:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1484,
+ "src": "25855:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1478,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "25855:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25854:17:3"
+ },
+ "returnParameters": {
+ "id": 1483,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1482,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1484,
+ "src": "25895:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1481,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "25895:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "25894:9:3"
+ },
+ "scope": 1551,
+ "src": "25838:66:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1485,
+ "nodeType": "StructuredDocumentation",
+ "src": "25907:163:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x60a11672,\n or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)"
+ },
+ "functionSelector": "60a11672",
+ "id": 1496,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "safeTransferFromWithData",
+ "nameLocation": "26081:24:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1494,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1487,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "26117:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1496,
+ "src": "26109:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1486,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26109:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1489,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "26133:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1496,
+ "src": "26125:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1488,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26125:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1491,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "26147:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1496,
+ "src": "26139:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1490,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26139:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1493,
+ "mutability": "mutable",
+ "name": "data",
+ "nameLocation": "26171:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1496,
+ "src": "26158:17:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1492,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "26158:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26105:73:3"
+ },
+ "returnParameters": {
+ "id": 1495,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "26187:0:3"
+ },
+ "scope": 1551,
+ "src": "26072:116:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1497,
+ "nodeType": "StructuredDocumentation",
+ "src": "26191:149:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x42842e0e,\n or in textual repr: safeTransferFrom(address,address,uint256)"
+ },
+ "functionSelector": "42842e0e",
+ "id": 1506,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "safeTransferFrom",
+ "nameLocation": "26351:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1504,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1499,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "26379:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1506,
+ "src": "26371:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1498,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26371:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1501,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "26395:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1506,
+ "src": "26387:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1500,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "26387:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1503,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "26409:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1506,
+ "src": "26401:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1502,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "26401:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "26367:52:3"
+ },
+ "returnParameters": {
+ "id": 1505,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "26428:0:3"
+ },
+ "scope": 1551,
+ "src": "26342:87:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1507,
+ "nodeType": "StructuredDocumentation",
+ "src": "26432:682:3",
+ "text": "@notice Transfer ownership of an RFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner or an authorized\n operator for this RFT. Throws if `from` is not the current owner. Throws\n if `to` is the zero address. Throws if `tokenId` is not a valid RFT.\n Throws if RFT pieces have multiple owners.\n @param from The current owner of the NFT\n @param to The new owner\n @param tokenId The NFT to transfer\n @dev EVM selector for this function is: 0x23b872dd,\n or in textual repr: transferFrom(address,address,uint256)"
+ },
+ "functionSelector": "23b872dd",
+ "id": 1516,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "27125:12:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1514,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1509,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "27149:4:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1516,
+ "src": "27141:12:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1508,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27141:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1511,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "27165:2:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1516,
+ "src": "27157:10:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1510,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27157:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1513,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "27179:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1516,
+ "src": "27171:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1512,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27171:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27137:52:3"
+ },
+ "returnParameters": {
+ "id": 1515,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "27198:0:3"
+ },
+ "scope": 1551,
+ "src": "27116:83:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1517,
+ "nodeType": "StructuredDocumentation",
+ "src": "27202:132:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x095ea7b3,\n or in textual repr: approve(address,uint256)"
+ },
+ "functionSelector": "095ea7b3",
+ "id": 1524,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "27345:7:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1522,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1519,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "27361:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1524,
+ "src": "27353:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1518,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27353:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1521,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "27379:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1524,
+ "src": "27371:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1520,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27371:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27352:35:3"
+ },
+ "returnParameters": {
+ "id": 1523,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "27396:0:3"
+ },
+ "scope": 1551,
+ "src": "27336:61:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1525,
+ "nodeType": "StructuredDocumentation",
+ "src": "27400:139:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0xa22cb465,\n or in textual repr: setApprovalForAll(address,bool)"
+ },
+ "functionSelector": "a22cb465",
+ "id": 1532,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setApprovalForAll",
+ "nameLocation": "27550:17:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1530,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1527,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "27576:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1532,
+ "src": "27568:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1526,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27568:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1529,
+ "mutability": "mutable",
+ "name": "approved",
+ "nameLocation": "27591:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1532,
+ "src": "27586:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1528,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "27586:4:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27567:33:3"
+ },
+ "returnParameters": {
+ "id": 1531,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "27609:0:3"
+ },
+ "scope": 1551,
+ "src": "27541:69:3",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1533,
+ "nodeType": "StructuredDocumentation",
+ "src": "27613:128:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0x081812fc,\n or in textual repr: getApproved(uint256)"
+ },
+ "functionSelector": "081812fc",
+ "id": 1540,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getApproved",
+ "nameLocation": "27752:11:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1536,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1535,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "27772:7:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1540,
+ "src": "27764:15:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1534,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "27764:7:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27763:17:3"
+ },
+ "returnParameters": {
+ "id": 1539,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1538,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1540,
+ "src": "27804:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1537,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27804:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27803:9:3"
+ },
+ "scope": 1551,
+ "src": "27743:70:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1541,
+ "nodeType": "StructuredDocumentation",
+ "src": "27816:141:3",
+ "text": "@dev Not implemented\n @dev EVM selector for this function is: 0xe985e9c5,\n or in textual repr: isApprovedForAll(address,address)"
+ },
+ "functionSelector": "e985e9c5",
+ "id": 1550,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "isApprovedForAll",
+ "nameLocation": "27968:16:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1546,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1543,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "27993:5:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1550,
+ "src": "27985:13:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1542,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "27985:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1545,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "28008:8:3",
+ "nodeType": "VariableDeclaration",
+ "scope": 1550,
+ "src": "28000:16:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1544,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28000:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "27984:33:3"
+ },
+ "returnParameters": {
+ "id": 1549,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1548,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1550,
+ "src": "28041:7:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1547,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "28041:7:3",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "28040:9:3"
+ },
+ "scope": 1551,
+ "src": "27959:91:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1573,
+ "src": "24853:3199:3",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1552,
+ "name": "Dummy",
+ "nameLocations": [
+ "28085:5:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 934,
+ "src": "28085:5:3"
+ },
+ "id": 1553,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28085:5:3"
+ },
+ {
+ "baseName": {
+ "id": 1554,
+ "name": "ERC165",
+ "nameLocations": [
+ "28093:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 944,
+ "src": "28093:6:3"
+ },
+ "id": 1555,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28093:6:3"
+ },
+ {
+ "baseName": {
+ "id": 1556,
+ "name": "ERC721",
+ "nameLocations": [
+ "28102:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1551,
+ "src": "28102:6:3"
+ },
+ "id": 1557,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28102:6:3"
+ },
+ {
+ "baseName": {
+ "id": 1558,
+ "name": "ERC721Enumerable",
+ "nameLocations": [
+ "28111:16:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1435,
+ "src": "28111:16:3"
+ },
+ "id": 1559,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28111:16:3"
+ },
+ {
+ "baseName": {
+ "id": 1560,
+ "name": "ERC721UniqueExtensions",
+ "nameLocations": [
+ "28130:22:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1400,
+ "src": "28130:22:3"
+ },
+ "id": 1561,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28130:22:3"
+ },
+ {
+ "baseName": {
+ "id": 1562,
+ "name": "ERC721UniqueMintable",
+ "nameLocations": [
+ "28155:20:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1331,
+ "src": "28155:20:3"
+ },
+ "id": 1563,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28155:20:3"
+ },
+ {
+ "baseName": {
+ "id": 1564,
+ "name": "ERC721Burnable",
+ "nameLocations": [
+ "28178:14:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1289,
+ "src": "28178:14:3"
+ },
+ "id": 1565,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28178:14:3"
+ },
+ {
+ "baseName": {
+ "id": 1566,
+ "name": "ERC721Metadata",
+ "nameLocations": [
+ "28195:14:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1277,
+ "src": "28195:14:3"
+ },
+ "id": 1567,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28195:14:3"
+ },
+ {
+ "baseName": {
+ "id": 1568,
+ "name": "Collection",
+ "nameLocations": [
+ "28212:10:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "28212:10:3"
+ },
+ "id": 1569,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28212:10:3"
+ },
+ {
+ "baseName": {
+ "id": 1570,
+ "name": "TokenProperties",
+ "nameLocations": [
+ "28225:15:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1000,
+ "src": "28225:15:3"
+ },
+ "id": 1571,
+ "nodeType": "InheritanceSpecifier",
+ "src": "28225:15:3"
+ }
+ ],
+ "canonicalName": "UniqueRefungible",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 1572,
+ "linearizedBaseContracts": [
+ 1572,
+ 1000,
+ 1248,
+ 1277,
+ 1289,
+ 1331,
+ 1293,
+ 1400,
+ 1435,
+ 1551,
+ 1461,
+ 944,
+ 934
+ ],
+ "name": "UniqueRefungible",
+ "nameLocation": "28064:16:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 1573,
+ "src": "28054:189:3",
+ "usedErrors": []
+ }
+ ],
+ "src": "75:28169:3"
+ },
+ "id": 3
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol",
+ "exportedSymbols": {
+ "Dummy": [
+ 1576
+ ],
+ "ERC1633": [
+ 1604
+ ],
+ "ERC165": [
+ 1586
+ ],
+ "ERC20": [
+ 1728
+ ],
+ "ERC20Events": [
+ 1646
+ ],
+ "ERC20UniqueExtensions": [
+ 1628
+ ],
+ "UniqueRefungibleToken": [
+ 1739
+ ]
+ },
+ "id": 1740,
+ "license": "OTHER",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1574,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0",
+ "<",
+ "0.9",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "75:31:4"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Dummy",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1575,
+ "nodeType": "StructuredDocumentation",
+ "src": "108:29:4",
+ "text": "@dev common stubs holder"
+ },
+ "fullyImplemented": true,
+ "id": 1576,
+ "linearizedBaseContracts": [
+ 1576
+ ],
+ "name": "Dummy",
+ "nameLocation": "147:5:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 1740,
+ "src": "137:20:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1577,
+ "name": "Dummy",
+ "nameLocations": [
+ "179:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1576,
+ "src": "179:5:4"
+ },
+ "id": 1578,
+ "nodeType": "InheritanceSpecifier",
+ "src": "179:5:4"
+ }
+ ],
+ "canonicalName": "ERC165",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 1586,
+ "linearizedBaseContracts": [
+ 1586,
+ 1576
+ ],
+ "name": "ERC165",
+ "nameLocation": "169:6:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "01ffc9a7",
+ "id": 1585,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "supportsInterface",
+ "nameLocation": "197:17:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1581,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1580,
+ "mutability": "mutable",
+ "name": "interfaceID",
+ "nameLocation": "222:11:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1585,
+ "src": "215:18:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ },
+ "typeName": {
+ "id": 1579,
+ "name": "bytes4",
+ "nodeType": "ElementaryTypeName",
+ "src": "215:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes4",
+ "typeString": "bytes4"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "214:20:4"
+ },
+ "returnParameters": {
+ "id": 1584,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1583,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1585,
+ "src": "258:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1582,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "258:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "257:6:4"
+ },
+ "scope": 1586,
+ "src": "188:76:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1740,
+ "src": "159:107:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1588,
+ "name": "Dummy",
+ "nameLocations": [
+ "354:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1576,
+ "src": "354:5:4"
+ },
+ "id": 1589,
+ "nodeType": "InheritanceSpecifier",
+ "src": "354:5:4"
+ },
+ {
+ "baseName": {
+ "id": 1590,
+ "name": "ERC165",
+ "nameLocations": [
+ "361:6:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1586,
+ "src": "361:6:4"
+ },
+ "id": 1591,
+ "nodeType": "InheritanceSpecifier",
+ "src": "361:6:4"
+ }
+ ],
+ "canonicalName": "ERC1633",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1587,
+ "nodeType": "StructuredDocumentation",
+ "src": "268:65:4",
+ "text": "@dev the ERC-165 identifier for this interface is 0x5755c3f2"
+ },
+ "fullyImplemented": false,
+ "id": 1604,
+ "linearizedBaseContracts": [
+ 1604,
+ 1586,
+ 1576
+ ],
+ "name": "ERC1633",
+ "nameLocation": "343:7:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1592,
+ "nodeType": "StructuredDocumentation",
+ "src": "371:95:4",
+ "text": "@dev EVM selector for this function is: 0x80a54001,\n or in textual repr: parentToken()"
+ },
+ "functionSelector": "80a54001",
+ "id": 1597,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parentToken",
+ "nameLocation": "477:11:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1593,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "488:2:4"
+ },
+ "returnParameters": {
+ "id": 1596,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1595,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1597,
+ "src": "514:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1594,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "514:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "513:9:4"
+ },
+ "scope": 1604,
+ "src": "468:55:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1598,
+ "nodeType": "StructuredDocumentation",
+ "src": "526:97:4",
+ "text": "@dev EVM selector for this function is: 0xd7f083f3,\n or in textual repr: parentTokenId()"
+ },
+ "functionSelector": "d7f083f3",
+ "id": 1603,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "parentTokenId",
+ "nameLocation": "634:13:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1599,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "647:2:4"
+ },
+ "returnParameters": {
+ "id": 1602,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1601,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1603,
+ "src": "673:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1600,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "673:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "672:9:4"
+ },
+ "scope": 1604,
+ "src": "625:57:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1740,
+ "src": "333:351:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1606,
+ "name": "Dummy",
+ "nameLocations": [
+ "786:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1576,
+ "src": "786:5:4"
+ },
+ "id": 1607,
+ "nodeType": "InheritanceSpecifier",
+ "src": "786:5:4"
+ },
+ {
+ "baseName": {
+ "id": 1608,
+ "name": "ERC165",
+ "nameLocations": [
+ "793:6:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1586,
+ "src": "793:6:4"
+ },
+ "id": 1609,
+ "nodeType": "InheritanceSpecifier",
+ "src": "793:6:4"
+ }
+ ],
+ "canonicalName": "ERC20UniqueExtensions",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1605,
+ "nodeType": "StructuredDocumentation",
+ "src": "686:65:4",
+ "text": "@dev the ERC-165 identifier for this interface is 0xab8deb37"
+ },
+ "fullyImplemented": false,
+ "id": 1628,
+ "linearizedBaseContracts": [
+ 1628,
+ 1586,
+ 1576
+ ],
+ "name": "ERC20UniqueExtensions",
+ "nameLocation": "761:21:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1610,
+ "nodeType": "StructuredDocumentation",
+ "src": "803:348:4",
+ "text": "@dev Function that burns an amount of the token of a given account,\n deducting from the sender's allowance for said account.\n @param from The account whose tokens will be burnt.\n @param amount The amount that will be burnt.\n @dev EVM selector for this function is: 0x79cc6790,\n or in textual repr: burnFrom(address,uint256)"
+ },
+ "functionSelector": "79cc6790",
+ "id": 1619,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "burnFrom",
+ "nameLocation": "1162:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1615,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1612,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "1179:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1619,
+ "src": "1171:12:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1611,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1171:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1614,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "1193:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1619,
+ "src": "1185:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1613,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1185:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1170:30:4"
+ },
+ "returnParameters": {
+ "id": 1618,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1617,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1619,
+ "src": "1219:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1616,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1219:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1218:6:4"
+ },
+ "scope": 1628,
+ "src": "1153:72:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1620,
+ "nodeType": "StructuredDocumentation",
+ "src": "1228:274:4",
+ "text": "@dev Function that changes total amount of the tokens.\n Throws if `msg.sender` doesn't owns all of the tokens.\n @param amount New total amount of the tokens.\n @dev EVM selector for this function is: 0xd2418ca7,\n or in textual repr: repartition(uint256)"
+ },
+ "functionSelector": "d2418ca7",
+ "id": 1627,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "repartition",
+ "nameLocation": "1513:11:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1623,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1622,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "1533:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1627,
+ "src": "1525:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1525:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1524:16:4"
+ },
+ "returnParameters": {
+ "id": 1626,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1625,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1627,
+ "src": "1559:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1624,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1559:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1558:6:4"
+ },
+ "scope": 1628,
+ "src": "1504:61:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1740,
+ "src": "751:816:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "ERC20Events",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1629,
+ "nodeType": "StructuredDocumentation",
+ "src": "1569:27:4",
+ "text": "@dev inlined interface"
+ },
+ "fullyImplemented": true,
+ "id": 1646,
+ "linearizedBaseContracts": [
+ 1646
+ ],
+ "name": "ERC20Events",
+ "nameLocation": "1606:11:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 1637,
+ "name": "Transfer",
+ "nameLocation": "1627:8:4",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1636,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1631,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "1652:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1637,
+ "src": "1636:20:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1630,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1636:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1633,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "1674:2:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1637,
+ "src": "1658:18:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1632,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1658:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1635,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1686:5:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1637,
+ "src": "1678:13:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1634,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1678:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1635:57:4"
+ },
+ "src": "1621:72:4"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 1645,
+ "name": "Approval",
+ "nameLocation": "1701:8:4",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1644,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1639,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "1726:5:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1645,
+ "src": "1710:21:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1638,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1710:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1641,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1749:7:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1645,
+ "src": "1733:23:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1640,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1733:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1643,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1766:5:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1645,
+ "src": "1758:13:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1642,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1758:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1709:63:4"
+ },
+ "src": "1695:78:4"
+ }
+ ],
+ "scope": 1740,
+ "src": "1596:179:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1648,
+ "name": "Dummy",
+ "nameLocations": [
+ "2014:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1576,
+ "src": "2014:5:4"
+ },
+ "id": 1649,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2014:5:4"
+ },
+ {
+ "baseName": {
+ "id": 1650,
+ "name": "ERC165",
+ "nameLocations": [
+ "2021:6:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1586,
+ "src": "2021:6:4"
+ },
+ "id": 1651,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2021:6:4"
+ },
+ {
+ "baseName": {
+ "id": 1652,
+ "name": "ERC20Events",
+ "nameLocations": [
+ "2029:11:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1646,
+ "src": "2029:11:4"
+ },
+ "id": 1653,
+ "nodeType": "InheritanceSpecifier",
+ "src": "2029:11:4"
+ }
+ ],
+ "canonicalName": "ERC20",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 1647,
+ "nodeType": "StructuredDocumentation",
+ "src": "1777:218:4",
+ "text": "@title Standard ERC20 token\n @dev Implementation of the basic standard token.\n https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n @dev the ERC-165 identifier for this interface is 0x942e8b22"
+ },
+ "fullyImplemented": false,
+ "id": 1728,
+ "linearizedBaseContracts": [
+ 1728,
+ 1646,
+ 1586,
+ 1576
+ ],
+ "name": "ERC20",
+ "nameLocation": "2005:5:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 1654,
+ "nodeType": "StructuredDocumentation",
+ "src": "2044:124:4",
+ "text": "@return the name of the token.\n @dev EVM selector for this function is: 0x06fdde03,\n or in textual repr: name()"
+ },
+ "functionSelector": "06fdde03",
+ "id": 1659,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "2179:4:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1655,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2183:2:4"
+ },
+ "returnParameters": {
+ "id": 1658,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1657,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1659,
+ "src": "2209:13:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1656,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2209:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2208:15:4"
+ },
+ "scope": 1728,
+ "src": "2170:54:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1660,
+ "nodeType": "StructuredDocumentation",
+ "src": "2227:128:4",
+ "text": "@return the symbol of the token.\n @dev EVM selector for this function is: 0x95d89b41,\n or in textual repr: symbol()"
+ },
+ "functionSelector": "95d89b41",
+ "id": 1665,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "2366:6:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1661,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2372:2:4"
+ },
+ "returnParameters": {
+ "id": 1664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1663,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1665,
+ "src": "2398:13:4",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1662,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2398:6:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2397:15:4"
+ },
+ "scope": 1728,
+ "src": "2357:56:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1666,
+ "nodeType": "StructuredDocumentation",
+ "src": "2416:141:4",
+ "text": "@dev Total number of tokens in existence\n @dev EVM selector for this function is: 0x18160ddd,\n or in textual repr: totalSupply()"
+ },
+ "functionSelector": "18160ddd",
+ "id": 1671,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "2568:11:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1667,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2579:2:4"
+ },
+ "returnParameters": {
+ "id": 1670,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1669,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1671,
+ "src": "2605:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1668,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2605:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2604:9:4"
+ },
+ "scope": 1728,
+ "src": "2559:55:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1672,
+ "nodeType": "StructuredDocumentation",
+ "src": "2617:116:4",
+ "text": "@dev Not supported\n @dev EVM selector for this function is: 0x313ce567,\n or in textual repr: decimals()"
+ },
+ "functionSelector": "313ce567",
+ "id": 1677,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "2744:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1673,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2752:2:4"
+ },
+ "returnParameters": {
+ "id": 1676,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1675,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1677,
+ "src": "2778:5:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 1674,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2778:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2777:7:4"
+ },
+ "scope": 1728,
+ "src": "2735:50:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1678,
+ "nodeType": "StructuredDocumentation",
+ "src": "2788:285:4",
+ "text": "@dev Gets the balance of the specified address.\n @param owner The address to query the balance of.\n @return An uint256 representing the amount owned by the passed address.\n @dev EVM selector for this function is: 0x70a08231,\n or in textual repr: balanceOf(address)"
+ },
+ "functionSelector": "70a08231",
+ "id": 1685,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "3084:9:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1681,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1680,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3102:5:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1685,
+ "src": "3094:13:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1679,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3094:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3093:15:4"
+ },
+ "returnParameters": {
+ "id": 1684,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1683,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1685,
+ "src": "3132:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1682,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3132:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3131:9:4"
+ },
+ "scope": 1728,
+ "src": "3075:66:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1686,
+ "nodeType": "StructuredDocumentation",
+ "src": "3144:248:4",
+ "text": "@dev Transfer token for a specified address\n @param to The address to transfer to.\n @param amount The amount to be transferred.\n @dev EVM selector for this function is: 0xa9059cbb,\n or in textual repr: transfer(address,uint256)"
+ },
+ "functionSelector": "a9059cbb",
+ "id": 1695,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "3403:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1691,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1688,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3420:2:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1695,
+ "src": "3412:10:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1687,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3412:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1690,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "3432:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1695,
+ "src": "3424:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1689,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3424:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3411:28:4"
+ },
+ "returnParameters": {
+ "id": 1694,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1693,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1695,
+ "src": "3458:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1692,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3458:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3457:6:4"
+ },
+ "scope": 1728,
+ "src": "3394:70:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1696,
+ "nodeType": "StructuredDocumentation",
+ "src": "3467:376:4",
+ "text": "@dev Transfer tokens from one address to another\n @param from address The address which you want to send tokens from\n @param to address The address which you want to transfer to\n @param amount uint256 the amount of tokens to be transferred\n @dev EVM selector for this function is: 0x23b872dd,\n or in textual repr: transferFrom(address,address,uint256)"
+ },
+ "functionSelector": "23b872dd",
+ "id": 1707,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "3854:12:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1703,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1698,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "3878:4:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1707,
+ "src": "3870:12:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1697,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3870:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1700,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3894:2:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1707,
+ "src": "3886:10:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1699,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3886:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1702,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "3908:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1707,
+ "src": "3900:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1701,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3900:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3866:51:4"
+ },
+ "returnParameters": {
+ "id": 1706,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1705,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1707,
+ "src": "3936:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1704,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3936:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3935:6:4"
+ },
+ "scope": 1728,
+ "src": "3845:97:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1708,
+ "nodeType": "StructuredDocumentation",
+ "src": "3945:709:4",
+ "text": "@dev Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`.\n Beware that changing an allowance with this method brings the risk that someone may use both the old\n and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n @param spender The address which will spend the funds.\n @param amount The amount of tokens to be spent.\n @dev EVM selector for this function is: 0x095ea7b3,\n or in textual repr: approve(address,uint256)"
+ },
+ "functionSelector": "095ea7b3",
+ "id": 1717,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "4665:7:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1713,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1710,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4681:7:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1717,
+ "src": "4673:15:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1709,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4673:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1712,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "4698:6:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1717,
+ "src": "4690:14:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1711,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4690:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4672:33:4"
+ },
+ "returnParameters": {
+ "id": 1716,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1715,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1717,
+ "src": "4724:4:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1714,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4724:4:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4723:6:4"
+ },
+ "scope": 1728,
+ "src": "4656:74:4",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 1718,
+ "nodeType": "StructuredDocumentation",
+ "src": "4733:409:4",
+ "text": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n @param owner address The address which owns the funds.\n @param spender address The address which will spend the funds.\n @return A uint256 specifying the amount of tokens still available for the spender.\n @dev EVM selector for this function is: 0xdd62ed3e,\n or in textual repr: allowance(address,address)"
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 1727,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "5153:9:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1723,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1720,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "5171:5:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1727,
+ "src": "5163:13:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1719,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5163:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1722,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "5186:7:4",
+ "nodeType": "VariableDeclaration",
+ "scope": 1727,
+ "src": "5178:15:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1721,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5178:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5162:32:4"
+ },
+ "returnParameters": {
+ "id": 1726,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1725,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 1727,
+ "src": "5218:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1724,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5218:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5217:9:4"
+ },
+ "scope": 1728,
+ "src": "5144:83:4",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 1740,
+ "src": "1995:3234:4",
+ "usedErrors": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1729,
+ "name": "Dummy",
+ "nameLocations": [
+ "5266:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1576,
+ "src": "5266:5:4"
+ },
+ "id": 1730,
+ "nodeType": "InheritanceSpecifier",
+ "src": "5266:5:4"
+ },
+ {
+ "baseName": {
+ "id": 1731,
+ "name": "ERC165",
+ "nameLocations": [
+ "5273:6:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1586,
+ "src": "5273:6:4"
+ },
+ "id": 1732,
+ "nodeType": "InheritanceSpecifier",
+ "src": "5273:6:4"
+ },
+ {
+ "baseName": {
+ "id": 1733,
+ "name": "ERC20",
+ "nameLocations": [
+ "5281:5:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1728,
+ "src": "5281:5:4"
+ },
+ "id": 1734,
+ "nodeType": "InheritanceSpecifier",
+ "src": "5281:5:4"
+ },
+ {
+ "baseName": {
+ "id": 1735,
+ "name": "ERC20UniqueExtensions",
+ "nameLocations": [
+ "5288:21:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1628,
+ "src": "5288:21:4"
+ },
+ "id": 1736,
+ "nodeType": "InheritanceSpecifier",
+ "src": "5288:21:4"
+ },
+ {
+ "baseName": {
+ "id": 1737,
+ "name": "ERC1633",
+ "nameLocations": [
+ "5311:7:4"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1604,
+ "src": "5311:7:4"
+ },
+ "id": 1738,
+ "nodeType": "InheritanceSpecifier",
+ "src": "5311:7:4"
+ }
+ ],
+ "canonicalName": "UniqueRefungibleToken",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 1739,
+ "linearizedBaseContracts": [
+ 1739,
+ 1604,
+ 1628,
+ 1728,
+ 1646,
+ 1586,
+ 1576
+ ],
+ "name": "UniqueRefungibleToken",
+ "nameLocation": "5241:21:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [],
+ "scope": 1740,
+ "src": "5231:90:4",
+ "usedErrors": []
+ }
+ ],
+ "src": "75:5247:4"
+ },
+ "id": 4
+ },
+ "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol": {
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol",
+ "exportedSymbols": {
+ "Collection": [
+ 1248
+ ],
+ "CollectionHelpers": [
+ 99
+ ],
+ "ContractHelpers": [
+ 282
+ ],
+ "EvmToSubstrate": [
+ 2269
+ ],
+ "NftCrossAccountId": [
+ 610
+ ],
+ "NftProperty": [
+ 620
+ ],
+ "Property": [
+ 1762
+ ],
+ "RftCrossAccountId": [
+ 1253
+ ],
+ "RftProperties": [
+ 1263
+ ],
+ "TokenProperties": [
+ 357
+ ],
+ "UniqueNFT": [
+ 930
+ ],
+ "UniqueRefungible": [
+ 1572
+ ],
+ "UniqueRefungibleToken": [
+ 1739
+ ]
+ },
+ "id": 2270,
+ "license": "Apache License",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1741,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "44:24:5"
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol",
+ "file": "../api/CollectionHelpers.sol",
+ "id": 1743,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 100,
+ "src": "69:63:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1742,
+ "name": "CollectionHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 99,
+ "src": "77:17:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol",
+ "file": "../api/ContractHelpers.sol",
+ "id": 1745,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 288,
+ "src": "133:59:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1744,
+ "name": "ContractHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 282,
+ "src": "141:15:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol",
+ "file": "../api/UniqueRefungibleToken.sol",
+ "id": 1747,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 1740,
+ "src": "193:71:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1746,
+ "name": "UniqueRefungibleToken",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1739,
+ "src": "201:21:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol",
+ "file": "../api/UniqueRefungible.sol",
+ "id": 1752,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 1573,
+ "src": "265:137:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1748,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "273:16:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1749,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "291:10:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1750,
+ "name": "EthCrossAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "303:15:5",
+ "typeDescriptions": {}
+ },
+ "local": "RftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1751,
+ "name": "Tuple20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "341:7:5",
+ "typeDescriptions": {}
+ },
+ "local": "RftProperties",
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol",
+ "file": "../api/UniqueNFT.sol",
+ "id": 1757,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2270,
+ "sourceUnit": 931,
+ "src": "403:126:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1753,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "411:9:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1754,
+ "name": "EthCrossAccount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "422:15:5",
+ "typeDescriptions": {}
+ },
+ "local": "NftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1755,
+ "name": "Tuple21",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 620,
+ "src": "460:7:5",
+ "typeDescriptions": {}
+ },
+ "local": "NftProperty",
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1756,
+ "name": "TokenProperties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 357,
+ "src": "484:15:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "canonicalName": "Property",
+ "id": 1762,
+ "members": [
+ {
+ "constant": false,
+ "id": 1759,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "557:3:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1762,
+ "src": "550:10:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1758,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "550:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1761,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "569:5:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1762,
+ "src": "563:11:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1760,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "563:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Property",
+ "nameLocation": "538:8:5",
+ "nodeType": "StructDefinition",
+ "scope": 2270,
+ "src": "531:46:5",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "EvmToSubstrate",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2269,
+ "linearizedBaseContracts": [
+ 2269
+ ],
+ "name": "EvmToSubstrate",
+ "nameLocation": "682:14:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 1770,
+ "mutability": "constant",
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "717:26:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2269,
+ "src": "700:76:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1763,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "700:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "526546756e6769626c65",
+ "id": 1767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "762:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ },
+ "value": "ReFungible"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ }
+ ],
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "756:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1765,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "756:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1768,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "756:19:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1764,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "746:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "746:30:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 1778,
+ "mutability": "constant",
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "796:27:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2269,
+ "src": "779:70:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1771,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "779:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4e4654",
+ "id": 1775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "842:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ },
+ "value": "NFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ }
+ ],
+ "id": 1774,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "836:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1773,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "836:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1776,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "836:12:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1772,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "826:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1777,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "826:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1799,
+ "nodeType": "Block",
+ "src": "1159:889:5",
+ "statements": [
+ {
+ "assignments": [
+ 1784
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1784,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "1174:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1799,
+ "src": "1163:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1783,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1782,
+ "name": "Collection",
+ "nameLocations": [
+ "1163:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "1163:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "1163:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1788,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1786,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1780,
+ "src": "1202:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1785,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "1191:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1787,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1191:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1163:51:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1792,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1256:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1260:6:5",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1256:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1790,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1784,
+ "src": "1226:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1791,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1241:14:5",
+ "memberName": "isOwnerOrAdmin",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1204,
+ "src": "1226:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address) view external returns (bool)"
+ }
+ },
+ "id": 1794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1226:41:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2063616c6c2074686973206d6574686f64",
+ "id": 1795,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1269:50:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ },
+ "value": "Only collection admin/owner can call this method"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ }
+ ],
+ "id": 1789,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1218:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1796,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1218:102:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1797,
+ "nodeType": "ExpressionStatement",
+ "src": "1218:102:5"
+ },
+ {
+ "id": 1798,
+ "nodeType": "PlaceholderStatement",
+ "src": "2043:1:5"
+ }
+ ]
+ },
+ "id": 1800,
+ "name": "checkRestrictions",
+ "nameLocation": "1120:17:5",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 1781,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1780,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "1146:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1800,
+ "src": "1138:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1779,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1138:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1137:21:5"
+ },
+ "src": "1111:937:5",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 1801,
+ "nodeType": "StructuredDocumentation",
+ "src": "2051:69:5",
+ "text": "@dev This emits when a mint to a substrate address has been made."
+ },
+ "eventSelector": "fb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb7535",
+ "id": 1811,
+ "name": "MintToSub",
+ "nameLocation": "2128:9:5",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1810,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1803,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toEth",
+ "nameLocation": "2146:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2138:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1802,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2138:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1805,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toSub",
+ "nameLocation": "2162:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2154:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1804,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2154:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1807,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "2178:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2170:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2170:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1809,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_tokenId",
+ "nameLocation": "2199:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1811,
+ "src": "2191:16:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1808,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2191:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2137:71:5"
+ },
+ "src": "2122:87:5"
+ },
+ {
+ "body": {
+ "id": 1941,
+ "nodeType": "Block",
+ "src": "2326:1359:5",
+ "statements": [
+ {
+ "assignments": [
+ 1823
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1823,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "2487:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2476:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1822,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1821,
+ "name": "Collection",
+ "nameLocations": [
+ "2476:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "2476:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "2476:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1827,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1825,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2515:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1824,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "2504:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1826,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2504:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2476:51:5"
+ },
+ {
+ "assignments": [
+ 1829
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1829,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "2539:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2531:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1828,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2531:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1838,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1833,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "2572:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1834,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2587:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "2572:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2572:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1832,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2566:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1831,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2566:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2566:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1830,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "2556:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2556:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2531:80:5"
+ },
+ {
+ "assignments": [
+ 1840
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1840,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2623:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1941,
+ "src": "2615:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1839,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2615:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1841,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2615:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1842,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1829,
+ "src": "2639:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1843,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "2657:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2639:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1883,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1829,
+ "src": "2970:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1884,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "2988:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2970:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1928,
+ "nodeType": "Block",
+ "src": "3325:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 1925,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3337:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 1924,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "3330:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 1926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3330:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1927,
+ "nodeType": "ExpressionStatement",
+ "src": "3330:59:5"
+ }
+ ]
+ },
+ "id": 1929,
+ "nodeType": "IfStatement",
+ "src": "2966:428:5",
+ "trueBody": {
+ "id": 1923,
+ "nodeType": "Block",
+ "src": "3017:302:5",
+ "statements": [
+ {
+ "assignments": [
+ 1888
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1888,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "3032:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1923,
+ "src": "3022:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 1887,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1886,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "3022:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "3022:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "3022:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1892,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1890,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "3058:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1889,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "3048:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 1891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3048:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3022:48:5"
+ },
+ {
+ "expression": {
+ "id": 1901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1893,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3120:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1898,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3157:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3149:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1896,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3149:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3149:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1894,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1888,
+ "src": "3130:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3144:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "3130:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1900,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3130:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3120:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1902,
+ "nodeType": "ExpressionStatement",
+ "src": "3120:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1909,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3232:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3224:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1907,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3224:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3224:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3239:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1906,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "3206:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3206:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1916,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3273:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3265:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1914,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3265:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1917,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3265:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1918,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "3277:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1913,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "3247:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3247:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 1920,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3302:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1903,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1888,
+ "src": "3169:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3183:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "3169:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 1921,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3169:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1922,
+ "nodeType": "ExpressionStatement",
+ "src": "3169:145:5"
+ }
+ ]
+ }
+ },
+ "id": 1930,
+ "nodeType": "IfStatement",
+ "src": "2635:759:5",
+ "trueBody": {
+ "id": 1882,
+ "nodeType": "Block",
+ "src": "2685:275:5",
+ "statements": [
+ {
+ "assignments": [
+ 1847
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1847,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "2707:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1882,
+ "src": "2690:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1846,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1845,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "2690:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1572,
+ "src": "2690:16:5"
+ },
+ "referencedDeclaration": 1572,
+ "src": "2690:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1851,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1849,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2740:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1848,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "2723:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1572_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2723:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2690:62:5"
+ },
+ {
+ "expression": {
+ "id": 1860,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1852,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "2761:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1857,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "2798:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2790:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1855,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2790:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2790:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1853,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1847,
+ "src": "2771:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2785:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1314,
+ "src": "2771:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2771:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2761:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1861,
+ "nodeType": "ExpressionStatement",
+ "src": "2761:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1868,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "2873:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2865:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1866,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2865:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1869,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2865:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2880:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1865,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "2847:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2847:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1875,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2914:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1874,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2906:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1873,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2906:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1876,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2906:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1877,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "2918:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1872,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "2888:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 1878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2888:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 1879,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "2943:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1862,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1847,
+ "src": "2810:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1864,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2824:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1368,
+ "src": "2810:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 1880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2810:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1881,
+ "nodeType": "ExpressionStatement",
+ "src": "2810:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3636:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3628:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1932,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3628:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1935,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3628:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1936,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1815,
+ "src": "3640:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1937,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "3660:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1938,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1840,
+ "src": "3673:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1931,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "3618:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 1939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3618:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1940,
+ "nodeType": "EmitStatement",
+ "src": "3613:68:5"
+ }
+ ]
+ },
+ "functionSelector": "7a8d9786",
+ "id": 1942,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1818,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1813,
+ "src": "2313:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1819,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1817,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "2295:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "2295:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "2295:30:5"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "nameLocation": "2221:15:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1816,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1813,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "2245:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1942,
+ "src": "2237:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1812,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2237:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1815,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "2266:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1942,
+ "src": "2258:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1814,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2258:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2236:49:5"
+ },
+ "returnParameters": {
+ "id": 1820,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2326:0:5"
+ },
+ "scope": 2269,
+ "src": "2212:1473:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2150,
+ "nodeType": "Block",
+ "src": "3855:1590:5",
+ "statements": [
+ {
+ "assignments": [
+ 1957
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1957,
+ "mutability": "mutable",
+ "name": "propertiesLength",
+ "nameLocation": "4016:16:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4008:24:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1956,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4008:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1960,
+ "initialValue": {
+ "expression": {
+ "id": 1958,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4035:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 1959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4046:6:5",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4035:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4008:44:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1962,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4064:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4083:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4064:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "id": 1965,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4086:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ },
+ "value": "Properies is empty"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ }
+ ],
+ "id": 1961,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "4056:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1966,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4056:51:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1967,
+ "nodeType": "ExpressionStatement",
+ "src": "4056:51:5"
+ },
+ {
+ "assignments": [
+ 1970
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1970,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "4123:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4112:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1969,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1968,
+ "name": "Collection",
+ "nameLocations": [
+ "4112:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "4112:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "4112:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1974,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1972,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4151:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1971,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "4140:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4140:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4112:51:5"
+ },
+ {
+ "assignments": [
+ 1976
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1976,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "4175:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4167:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1975,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4167:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1985,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1980,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1970,
+ "src": "4208:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1981,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4223:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "4208:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4208:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1979,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4202:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1978,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4202:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4202:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1977,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "4192:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1984,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4192:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4167:80:5"
+ },
+ {
+ "assignments": [
+ 1987
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1987,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4259:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2150,
+ "src": "4251:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1986,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4251:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1988,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4251:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1989,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1976,
+ "src": "4275:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1990,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "4293:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4275:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2063,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2061,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1976,
+ "src": "4770:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2062,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "4788:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4770:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2137,
+ "nodeType": "Block",
+ "src": "5248:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 2134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5260:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 2133,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "5253:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 2135,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5253:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2136,
+ "nodeType": "ExpressionStatement",
+ "src": "5253:59:5"
+ }
+ ]
+ },
+ "id": 2138,
+ "nodeType": "IfStatement",
+ "src": "4766:551:5",
+ "trueBody": {
+ "id": 2132,
+ "nodeType": "Block",
+ "src": "4817:425:5",
+ "statements": [
+ {
+ "assignments": [
+ 2066
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2066,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "4832:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2132,
+ "src": "4822:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 2065,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2064,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "4822:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "4822:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "4822:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2070,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2068,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4858:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2067,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "4848:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 2069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4848:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4822:48:5"
+ },
+ {
+ "expression": {
+ "id": 2075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2071,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4875:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2072,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "4885:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4899:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 757,
+ "src": "4885:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 2074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4885:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4875:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2076,
+ "nodeType": "ExpressionStatement",
+ "src": "4875:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2082,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4944:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2081,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4936:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2080,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4936:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4936:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2077,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "4917:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4931:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "4917:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4917:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2085,
+ "nodeType": "ExpressionStatement",
+ "src": "4917:33:5"
+ },
+ {
+ "body": {
+ "id": 2110,
+ "nodeType": "Block",
+ "src": "5002:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2099,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5034:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2100,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "5043:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2102,
+ "indexExpression": {
+ "id": 2101,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "5054:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5043:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2103,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5057:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1759,
+ "src": "5043:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2104,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "5062:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2106,
+ "indexExpression": {
+ "id": 2105,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "5073:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5062:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2107,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5076:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1761,
+ "src": "5062:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 2096,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "5008:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5022:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 328,
+ "src": "5008:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 2108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5008:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2109,
+ "nodeType": "ExpressionStatement",
+ "src": "5008:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2090,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "4975:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2091,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4979:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4975:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2111,
+ "initializationExpression": {
+ "assignments": [
+ 2087
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2087,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4968:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2111,
+ "src": "4960:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2086,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4960:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2089,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4972:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4960:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 2094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4997:3:5",
+ "subExpression": {
+ "id": 2093,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2087,
+ "src": "4999:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2095,
+ "nodeType": "ExpressionStatement",
+ "src": "4997:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "4955:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2118,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "5155:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2117,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5147:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2116,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5147:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2119,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5147:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2120,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5162:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2115,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "5129:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5129:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2125,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5196:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2124,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5188:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2123,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5188:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2126,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5188:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2127,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "5200:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2122,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "5170:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2128,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5170:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2129,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5225:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2112,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2066,
+ "src": "5092:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5106:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "5092:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5092:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2131,
+ "nodeType": "ExpressionStatement",
+ "src": "5092:145:5"
+ }
+ ]
+ }
+ },
+ "id": 2139,
+ "nodeType": "IfStatement",
+ "src": "4271:1046:5",
+ "trueBody": {
+ "id": 2060,
+ "nodeType": "Block",
+ "src": "4321:439:5",
+ "statements": [
+ {
+ "assignments": [
+ 1994
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1994,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "4343:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2060,
+ "src": "4326:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1993,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1992,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "4326:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1572,
+ "src": "4326:16:5"
+ },
+ "referencedDeclaration": 1572,
+ "src": "4326:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1998,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1996,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "4376:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1995,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1572,
+ "src": "4359:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1572_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4326:62:5"
+ },
+ {
+ "expression": {
+ "id": 2003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1999,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4393:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2000,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4403:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4417:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1391,
+ "src": "4403:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 2002,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4403:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4393:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2004,
+ "nodeType": "ExpressionStatement",
+ "src": "4393:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2010,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4462:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2009,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4454:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2008,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4454:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4454:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2005,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4435:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2007,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4449:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1314,
+ "src": "4435:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4435:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2013,
+ "nodeType": "ExpressionStatement",
+ "src": "4435:33:5"
+ },
+ {
+ "body": {
+ "id": 2038,
+ "nodeType": "Block",
+ "src": "4520:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2027,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4552:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2028,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4561:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2030,
+ "indexExpression": {
+ "id": 2029,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4572:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4561:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2031,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4575:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1759,
+ "src": "4561:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2032,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1950,
+ "src": "4580:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2034,
+ "indexExpression": {
+ "id": 2033,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4591:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4580:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2035,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4594:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1761,
+ "src": "4580:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 2024,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4526:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2026,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4540:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 971,
+ "src": "4526:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 2036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4526:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2037,
+ "nodeType": "ExpressionStatement",
+ "src": "4526:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2018,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4493:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2019,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1957,
+ "src": "4497:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4493:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2039,
+ "initializationExpression": {
+ "assignments": [
+ 2015
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2015,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4486:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2039,
+ "src": "4478:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2014,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4478:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2017,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4490:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4478:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 2022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4515:3:5",
+ "subExpression": {
+ "id": 2021,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2015,
+ "src": "4517:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2023,
+ "nodeType": "ExpressionStatement",
+ "src": "4515:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "4473:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2046,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4673:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4665:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2044,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4665:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2047,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4665:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2048,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4680:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2043,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "4647:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4647:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2053,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4714:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4706:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2051,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4706:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4706:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2055,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "4718:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2050,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1253,
+ "src": "4688:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$1253_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4688:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2057,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "4743:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$1253_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2040,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1994,
+ "src": "4610:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1572",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 2042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4624:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1368,
+ "src": "4610:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_struct$_EthCrossAccount_$1253_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2058,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4610:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2059,
+ "nodeType": "ExpressionStatement",
+ "src": "4610:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2143,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5396:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2142,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5388:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2141,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5388:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2144,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5388:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2145,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1946,
+ "src": "5400:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2146,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "5420:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2147,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1987,
+ "src": "5433:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2140,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "5378:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 2148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5378:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2149,
+ "nodeType": "EmitStatement",
+ "src": "5373:68:5"
+ }
+ ]
+ },
+ "functionSelector": "440dff9d",
+ "id": 2151,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1953,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1944,
+ "src": "3842:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1954,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1952,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "3824:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "3824:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "3824:30:5"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "nameLocation": "3697:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1951,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1944,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "3736:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3728:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1943,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3728:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1946,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "3759:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3751:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1945,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3751:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1950,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "3801:10:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2151,
+ "src": "3781:30:5",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1948,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1947,
+ "name": "Property",
+ "nameLocations": [
+ "3781:8:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1762,
+ "src": "3781:8:5"
+ },
+ "referencedDeclaration": 1762,
+ "src": "3781:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1762_storage_ptr",
+ "typeString": "struct Property"
+ }
+ },
+ "id": 1949,
+ "nodeType": "ArrayTypeName",
+ "src": "3781:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1762_storage_$dyn_storage_ptr",
+ "typeString": "struct Property[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3724:90:5"
+ },
+ "returnParameters": {
+ "id": 1955,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3855:0:5"
+ },
+ "scope": 2269,
+ "src": "3688:1757:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2267,
+ "nodeType": "Block",
+ "src": "5619:885:5",
+ "statements": [
+ {
+ "assignments": [
+ 2166
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2166,
+ "mutability": "mutable",
+ "name": "propertiesLength",
+ "nameLocation": "5631:16:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5623:24:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2165,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5623:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2169,
+ "initialValue": {
+ "expression": {
+ "id": 2167,
+ "name": "_properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2159,
+ "src": "5650:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ },
+ "id": 2168,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5662:6:5",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5650:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5623:45:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2173,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2171,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "5680:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2172,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5699:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5680:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "id": 2174,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5702:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ },
+ "value": "Properies is empty"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ }
+ ],
+ "id": 2170,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "5672:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2175,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5672:51:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2176,
+ "nodeType": "ExpressionStatement",
+ "src": "5672:51:5"
+ },
+ {
+ "assignments": [
+ 2179
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2179,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "5739:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5728:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 2178,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2177,
+ "name": "Collection",
+ "nameLocations": [
+ "5728:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1248,
+ "src": "5728:10:5"
+ },
+ "referencedDeclaration": 1248,
+ "src": "5728:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2183,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2181,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "5767:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2180,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1248,
+ "src": "5756:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1248_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 2182,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5756:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5728:51:5"
+ },
+ {
+ "assignments": [
+ 2185
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2185,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "5791:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5783:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 2184,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "5783:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2194,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2189,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2179,
+ "src": "5824:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1248",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 2190,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5839:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1219,
+ "src": "5824:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 2191,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5824:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 2188,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5818:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 2187,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "5818:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2192,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5818:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 2186,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "5808:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 2193,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5808:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5783:80:5"
+ },
+ {
+ "assignments": [
+ 2196
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2196,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "5875:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2267,
+ "src": "5867:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2195,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5867:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2197,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5867:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2200,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2198,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2185,
+ "src": "5891:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2199,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1770,
+ "src": "5909:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "5891:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2204,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2202,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2185,
+ "src": "5949:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2203,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1778,
+ "src": "5967:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "5949:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2254,
+ "nodeType": "Block",
+ "src": "6359:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 2251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6371:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 2250,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "6364:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 2252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6364:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2253,
+ "nodeType": "ExpressionStatement",
+ "src": "6364:59:5"
+ }
+ ]
+ },
+ "id": 2255,
+ "nodeType": "IfStatement",
+ "src": "5945:483:5",
+ "trueBody": {
+ "id": 2249,
+ "nodeType": "Block",
+ "src": "5996:357:5",
+ "statements": [
+ {
+ "assignments": [
+ 2207
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2207,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "6011:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2249,
+ "src": "6001:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 2206,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2205,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "6001:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 930,
+ "src": "6001:9:5"
+ },
+ "referencedDeclaration": 930,
+ "src": "6001:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2211,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2209,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "6037:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2208,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 930,
+ "src": "6027:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$930_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 2210,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6027:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6001:48:5"
+ },
+ {
+ "expression": {
+ "id": 2220,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2212,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6099:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2217,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "6136:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6128:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2215,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6128:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2218,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6128:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 2213,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6109:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2214,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6123:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 671,
+ "src": "6109:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 2219,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6109:33:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6099:43:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2221,
+ "nodeType": "ExpressionStatement",
+ "src": "6099:43:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2225,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6176:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2226,
+ "name": "_properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2159,
+ "src": "6185:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21 calldata[] calldata"
+ }
+ ],
+ "expression": {
+ "id": 2222,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6148:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6162:13:5",
+ "memberName": "setProperties",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 338,
+ "src": "6148:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_array$_t_struct$_Tuple21_$620_memory_ptr_$dyn_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,struct Tuple21 memory[] memory) external"
+ }
+ },
+ "id": 2227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6148:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2228,
+ "nodeType": "ExpressionStatement",
+ "src": "6148:49:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2235,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "6266:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2269",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6258:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2233,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6258:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2236,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6258:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6273:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2232,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "6240:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2238,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6240:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6307:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6299:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2240,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6299:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2243,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6299:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2244,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2155,
+ "src": "6311:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2239,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 610,
+ "src": "6281:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_EthCrossAccount_$610_storage_ptr_$",
+ "typeString": "type(struct EthCrossAccount storage pointer)"
+ }
+ },
+ "id": 2245,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6281:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ }
+ },
+ {
+ "id": 2246,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6336:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_EthCrossAccount_$610_memory_ptr",
+ "typeString": "struct EthCrossAccount memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2229,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2207,
+ "src": "6203:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$930",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6217:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 734,
+ "src": "6203:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_struct$_EthCrossAccount_$610_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct EthCrossAccount memory,struct EthCrossAccount memory,uint256) external"
+ }
+ },
+ "id": 2247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6203:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2248,
+ "nodeType": "ExpressionStatement",
+ "src": "6203:145:5"
+ }
+ ]
+ }
+ },
+ "id": 2256,
+ "nodeType": "IfStatement",
+ "src": "5887:541:5",
+ "trueBody": {
+ "id": 2201,
+ "nodeType": "Block",
+ "src": "5937:2:5",
+ "statements": []
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6455:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6447:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2258,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6447:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6447:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2262,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2155,
+ "src": "6459:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2263,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "6479:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2264,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "6492:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2257,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1811,
+ "src": "6437:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 2265,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6437:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2266,
+ "nodeType": "EmitStatement",
+ "src": "6432:68:5"
+ }
+ ]
+ },
+ "functionSelector": "3a0dbb1a",
+ "id": 2268,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 2162,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2153,
+ "src": "5606:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2163,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 2161,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "5588:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1800,
+ "src": "5588:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "5588:30:5"
+ }
+ ],
+ "name": "mintToSubstrateBulkProperty",
+ "nameLocation": "5457:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2160,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2153,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "5496:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5488:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2152,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5488:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2155,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "5519:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5511:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2154,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5511:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2159,
+ "mutability": "mutable",
+ "name": "_properties",
+ "nameLocation": "5564:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2268,
+ "src": "5541:34:5",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Tuple21[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 2157,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2156,
+ "name": "NftProperty",
+ "nameLocations": [
+ "5541:11:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 620,
+ "src": "5541:11:5"
+ },
+ "referencedDeclaration": 620,
+ "src": "5541:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple21_$620_storage_ptr",
+ "typeString": "struct Tuple21"
+ }
+ },
+ "id": 2158,
+ "nodeType": "ArrayTypeName",
+ "src": "5541:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Tuple21_$620_storage_$dyn_storage_ptr",
+ "typeString": "struct Tuple21[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5484:94:5"
+ },
+ "returnParameters": {
+ "id": 2164,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5619:0:5"
+ },
+ "scope": 2269,
+ "src": "5448:1056:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2270,
+ "src": "673:5833:5",
+ "usedErrors": []
+ }
+ ],
+ "src": "44:6463:5"
+ },
+ "id": 5
+ }
+ }
+}
\ No newline at end of file
pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungibleToken.rawdiffbeforeafterbothbinary blob — no preview
pallets/unique/src/eth/stubs/CollectionHelpers.soldiffbeforeafterbothno changes
tests/src/eth/evmToSubstrate/ABI/EvmToSubstrate.jsondiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/ABI/EvmToSubstrate.json
@@ -0,0 +1,5909 @@
+{
+ "contractName": "EvmToSubstrate",
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_toEth",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_toSub",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintToSub",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_collection",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_substrateReceiver",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "string",
+ "name": "key",
+ "type": "string"
+ },
+ {
+ "internalType": "bytes",
+ "name": "value",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct Property[]",
+ "name": "properties",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_toEth\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toSub\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MintToSub\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"}],\"name\":\"mintToSubstrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_substrateReceiver\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Property[]\",\"name\":\"properties\",\"type\":\"tuple[]\"}],\"name\":\"mintToSubstrateWithProperty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"MintToSub(address,uint256,address,uint256)\":{\"details\":\"This emits when a mint to a substrate address has been made.\"}},\"kind\":\"dev\",\"methods\":{\"mintToSubstrate(address,uint256)\":{\"details\":\"Throws if RFT collection is already configured for this contract. Throws if collection of wrong type (NFT, Fungible) is provided instead of RFT collection. Throws if `msg.sender` is not owner or admin of provided RFT collection. Can only be called by contract owner.\",\"params\":{\"_collection\":\"address of RFT collection.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mintToSubstrate(address,uint256)\":{\"notice\":\"Set RFT collection that contract will work with. RFT tokens for fractionalized NFT tokens would be created in this collection.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":\"EvmToSubstrate\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol\":{\"keccak256\":\"0xe91307f91e63b71da7395290b787ab8a4aeb8fe7d3a84cdae31cbce9fc9feda0\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://695a2b10727b1dc1630bc3b5beeda3b9c49a2b930ca55225f06dca1b171ecc58\",\"dweb:/ipfs/QmXvsf3FijN8NhkQza9iDkiF9CQJswhnHtWwLMxywVcEV6\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol\":{\"keccak256\":\"0xbf6cbc8921b46aceef74fcb0218f8af41a5c1c8c09278cd29b055d39af4ba06c\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://cb309a7e806ab15bf7db1469c70ce547e358783a8be709d48632062600bbdf58\",\"dweb:/ipfs/QmcUViezUamzuLB9Pp5AjwNbSNLdVqnrSbvrRMkHoEb5DY\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol\":{\"keccak256\":\"0x1f42224d400226c94cc333ee95b2158f91e157e49a056054dbef3295d603e7e9\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://fa5f97112c5d7b6749e3a3f554b6593706e132042ac669dc8b4c39f78e1160c1\",\"dweb:/ipfs/QmbrtRn7AbrH8Zu64m5aXJcNthooeZKgDC4NUm1WcJ6ZaU\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol\":{\"keccak256\":\"0x265d5f1642a84fcdc5ebc874fa9857ada43f85b8f2621a43f64873f8897b7fa6\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://324fc61ea39a5f834665612e023d90facbe6d0af444d4c7769bd32999d7ab441\",\"dweb:/ipfs/QmQX446wQKaFfPaQ6Wv4QaUojGYJvB7TxWPAcFt5UtbUqC\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol\":{\"keccak256\":\"0xb59b9048e1b781ac57c466c9d323422cac264676232514a713ccacdb531d9c40\",\"license\":\"OTHER\",\"urls\":[\"bzz-raw://51ce50ac81d569f7e385b41fa1a4bb77d3358fb83ae420fae65b73dec54feb05\",\"dweb:/ipfs/QmQSpdWmxammhuDwFWn9jTAnALKCgyNUYYGDVQF8QRzB3w\"]},\"/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol\":{\"keccak256\":\"0x3f58b981bf3923d570d2cd0c4aa5bb2650a76da628b6b3dd0d4ba32237f514bb\",\"license\":\"Apache License\",\"urls\":[\"bzz-raw://de485cdf79fde3f3de802182a9a9a43799d21ec4c2277e07988b430c49578c71\",\"dweb:/ipfs/QmVNdwyLMp7zQD5sZPDeE1SXwKQCX3yXhTLEki4pZcHu9u\"]}},\"version\":1}",
+ "bytecode": "608060405234801561001057600080fd5b50610e46806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063440dff9d1461003b5780637a8d978614610050575b600080fd5b61004e610049366004610aa4565b610063565b005b61004e61005e366004610b2e565b6106f9565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100cf9190610b58565b6100f45760405162461bcd60e51b81526004016100eb90610b81565b60405180910390fd5b82806101375760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b60448201526064016100eb565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561017c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101a49190810190610be7565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b295820161043f5760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102609190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af11580156102b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d49190610b58565b5060005b858110156103b357816001600160a01b0316631752d67b848c8c8581811061030257610302610cca565b90506020028101906103149190610ce0565b61031e9080610d00565b8e8e8781811061033057610330610cca565b90506020028101906103429190610ce0565b610350906020810190610d00565b6040518663ffffffff1660e01b8152600401610370959493929190610d77565b600060405180830381600087803b15801561038a57600080fd5b505af115801561039e573d6000803e3d6000fd5b50505050806103ac90610db0565b90506102d8565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b92610407929091908790600401610dd7565b600060405180830381600087803b15801561042157600080fd5b505af1158015610435573d6000803e3d6000fd5b505050505061069d565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe96820161063b5760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af1158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190610b58565b5060005b858110156103b357816001600160a01b0316631752d67b848c8c8581811061058a5761058a610cca565b905060200281019061059c9190610ce0565b6105a69080610d00565b8e8e878181106105b8576105b8610cca565b90506020028101906105ca9190610ce0565b6105d8906020810190610d00565b6040518663ffffffff1660e01b81526004016105f8959493929190610d77565b600060405180830381600087803b15801561061257600080fd5b505af1158015610626573d6000803e3d6000fd5b505050508061063490610db0565b9050610560565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b60648201526084016100eb565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610741573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107659190610b58565b6107815760405162461bcd60e51b81526004016100eb90610b81565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ee9190810190610be7565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016109aa576000879050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af11580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e9190610b58565b50604080518082018252308152600060208083018290528351808501855291825281018a9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b92610972929091908790600401610dd7565b600060405180830381600087803b15801561098c57600080fd5b505af11580156109a0573d6000803e3d6000fd5b5050505050610a2f565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe96820161063b576000879050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610886573d6000803e3d6000fd5b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610a9f57600080fd5b919050565b60008060008060608587031215610aba57600080fd5b610ac385610a88565b935060208501359250604085013567ffffffffffffffff80821115610ae757600080fd5b818701915087601f830112610afb57600080fd5b813581811115610b0a57600080fd5b8860208260051b8501011115610b1f57600080fd5b95989497505060200194505050565b60008060408385031215610b4157600080fd5b610b4a83610a88565b946020939093013593505050565b600060208284031215610b6a57600080fd5b81518015158114610b7a57600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610bfa57600080fd5b825167ffffffffffffffff80821115610c1257600080fd5b818501915085601f830112610c2657600080fd5b815181811115610c3857610c38610bd1565b604051601f8201601f19908116603f01168101908382118183101715610c6057610c60610bd1565b816040528281528886848701011115610c7857600080fd5b600093505b82841015610c9a5784840186015181850187015292850192610c7d565b600086848301015280965050505050505092915050565b600060208284031215610cc357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610cf657600080fd5b9190910192915050565b6000808335601e19843603018112610d1757600080fd5b83018035915067ffffffffffffffff821115610d3257600080fd5b602001915036819003821315610d4757600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b858152606060208201526000610d91606083018688610d4e565b8281036040840152610da4818587610d4e565b98975050505050505050565b600060018201610dd057634e487b7160e01b600052601160045260246000fd5b5060010190565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a0019056fea2646970667358221220da8ff84a103be9db6b42d85b4650dc8a633327ec7c4a8dc98e58ce322129c48664736f6c63430008110033",
+ "deployedBytecode": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063440dff9d1461003b5780637a8d978614610050575b600080fd5b61004e610049366004610aa4565b610063565b005b61004e61005e366004610b2e565b6106f9565b604051639811b0c760e01b8152336004820152849081906001600160a01b03821690639811b0c790602401602060405180830381865afa1580156100ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100cf9190610b58565b6100f45760405162461bcd60e51b81526004016100eb90610b81565b60405180910390fd5b82806101375760405162461bcd60e51b815260206004820152601260248201527150726f70657269657320697320656d70747960701b60448201526064016100eb565b60008790506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561017c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101a49190810190610be7565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b295820161043f5760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102609190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af11580156102b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d49190610b58565b5060005b858110156103b357816001600160a01b0316631752d67b848c8c8581811061030257610302610cca565b90506020028101906103149190610ce0565b61031e9080610d00565b8e8e8781811061033057610330610cca565b90506020028101906103429190610ce0565b610350906020810190610d00565b6040518663ffffffff1660e01b8152600401610370959493929190610d77565b600060405180830381600087803b15801561038a57600080fd5b505af115801561039e573d6000803e3d6000fd5b50505050806103ac90610db0565b90506102d8565b50604080518082018252308152600060208083018290528351808501855291825281018d9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b92610407929091908790600401610dd7565b600060405180830381600087803b15801561042157600080fd5b505af1158015610435573d6000803e3d6000fd5b505050505061069d565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe96820161063b5760008a9050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e89190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af1158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190610b58565b5060005b858110156103b357816001600160a01b0316631752d67b848c8c8581811061058a5761058a610cca565b905060200281019061059c9190610ce0565b6105a69080610d00565b8e8e878181106105b8576105b8610cca565b90506020028101906105ca9190610ce0565b6105d8906020810190610d00565b6040518663ffffffff1660e01b81526004016105f8959493929190610d77565b600060405180830381600087803b15801561061257600080fd5b505af1158015610626573d6000803e3d6000fd5b505050508061063490610db0565b9050610560565b60405162461bcd60e51b815260206004820152603160248201527f57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c6044820152701e481dda5d1a08139195081bdc88149195607a1b60648201526084016100eb565b6040805160008152602081018b90526001600160a01b038c16818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050505050565b604051639811b0c760e01b8152336004820152829081906001600160a01b03821690639811b0c790602401602060405180830381865afa158015610741573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107659190610b58565b6107815760405162461bcd60e51b81526004016100eb90610b81565b60008490506000816001600160a01b031663d34b55b86040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ee9190810190610be7565b805160209182012060408051808201909152600a815269526546756e6769626c6560b01b920191909152905060007f3248d02b1e2f292b1142854ebdeec13d4b4f9224dbcdb24a3d7810fe54b7b29582016109aa576000879050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190610cb1565b6040516340c10f1960e01b8152306004820152602481018290529092506001600160a01b038216906340c10f19906044016020604051808303816000875af11580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e9190610b58565b50604080518082018252308152600060208083018290528351808501855291825281018a9052915163d5cf430b60e01b81526001600160a01b0384169263d5cf430b92610972929091908790600401610dd7565b600060405180830381600087803b15801561098c57600080fd5b505af11580156109a0573d6000803e3d6000fd5b5050505050610a2f565b60408051808201909152600381526213919560ea1b6020909101527f63bec732f5ecee1b8b708f2f01c23aa0f0a08a1f0df248cedda343c476ebfe96820161063b576000879050806001600160a01b03166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610886573d6000803e3d6000fd5b6040805160008152602081018890526001600160a01b038916818301526060810183905290517ffb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb75359181900360800190a150505050505050565b80356001600160a01b0381168114610a9f57600080fd5b919050565b60008060008060608587031215610aba57600080fd5b610ac385610a88565b935060208501359250604085013567ffffffffffffffff80821115610ae757600080fd5b818701915087601f830112610afb57600080fd5b813581811115610b0a57600080fd5b8860208260051b8501011115610b1f57600080fd5b95989497505060200194505050565b60008060408385031215610b4157600080fd5b610b4a83610a88565b946020939093013593505050565b600060208284031215610b6a57600080fd5b81518015158114610b7a57600080fd5b9392505050565b60208082526030908201527f4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2060408201526f18d85b1b081d1a1a5cc81b595d1a1bd960821b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610bfa57600080fd5b825167ffffffffffffffff80821115610c1257600080fd5b818501915085601f830112610c2657600080fd5b815181811115610c3857610c38610bd1565b604051601f8201601f19908116603f01168101908382118183101715610c6057610c60610bd1565b816040528281528886848701011115610c7857600080fd5b600093505b82841015610c9a5784840186015181850187015292850192610c7d565b600086848301015280965050505050505092915050565b600060208284031215610cc357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112610cf657600080fd5b9190910192915050565b6000808335601e19843603018112610d1757600080fd5b83018035915067ffffffffffffffff821115610d3257600080fd5b602001915036819003821315610d4757600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b858152606060208201526000610d91606083018688610d4e565b8281036040840152610da4818587610d4e565b98975050505050505050565b600060018201610dd057634e487b7160e01b600052601160045260246000fd5b5060010190565b83516001600160a01b03908116825260209485015185830152835116604082015291909201516060820152608081019190915260a0019056fea2646970667358221220da8ff84a103be9db6b42d85b4650dc8a633327ec7c4a8dc98e58ce322129c48664736f6c63430008110033",
+ "sourceMap": "494:5314:5:-:0;;;;;;;;;;;;;;;;;;;",
+ "deployedSourceMap": "494:5314:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4031:1775;;;;;;:::i;:::-;;:::i;:::-;;2522:1506;;;;;;:::i;:::-;;:::i;4031:1775::-;1047:41;;-1:-1:-1;;;1047:41:5;;1077:10;1047:41;;;1387:51:6;4185:11:5;;;;-1:-1:-1;;;;;1047:29:5;;;;;1360:18:6;;1047:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1039:102;;;;-1:-1:-1;;;1039:102:5;;;;;;;:::i;:::-;;;;;;;;;4378:10;4407:20;4399:51:::1;;;::::0;-1:-1:-1;;;4399:51:5;;2350:2:6;4399:51:5::1;::::0;::::1;2332:21:6::0;2389:2;2369:18;;;2362:30;-1:-1:-1;;;2408:18:6;;;2401:48;2466:18;;4399:51:5::1;2148:342:6::0;4399:51:5::1;4455:25;4494:11;4455:51;;4510:22;4551:14;-1:-1:-1::0;;;;;4551:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4551:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4535:55:::0;;::::1;::::0;;::::1;::::0;577:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;577:19:5;::::1;::::0;;;;4535:55;-1:-1:-1;4594:15:5::1;4618:44:::0;;;4614:1064:::1;;4669:30;4719:11;4669:62;;4746:13;-1:-1:-1::0;;;;;4746:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4778:42;::::0;-1:-1:-1;;;4778:42:5;;4805:4:::1;4778:42;::::0;::::1;4037:51:6::0;4104:18;;;4097:34;;;4736:37:5;;-1:-1:-1;;;;;;4778:18:5;::::1;::::0;::::1;::::0;4010::6;;4778:42:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4830:9;4825:133;4849:16;4845:1;:20;4825:133;;;4878:13;-1:-1:-1::0;;;;;4878:25:5::1;;4904:7;4913:10;;4924:1;4913:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;4932:10;;4943:1;4932:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;4878:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4867:3;;;;:::i;:::-;;;4825:133;;;-1:-1:-1::0;4999:35:5::1;::::0;;;;::::1;::::0;;5025:4:::1;4999:35:::0;;-1:-1:-1;4999:35:5::1;::::0;;::::1;::::0;;;5040:49;;;;::::1;::::0;;;;;;::::1;::::0;;;4962:145;;-1:-1:-1;;;4962:145:5;;-1:-1:-1;;;;;4962:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;4999:35;;5040:49;5095:7;;4962:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4664:448;4614:1064;;;657:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;657:12:5::1;::::0;;::::1;::::0;5122:45;;;5118:560:::1;;5174:23;5210:11;5174:48;;5237:13;-1:-1:-1::0;;;;;5237:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5269:42;::::0;-1:-1:-1;;;5269:42:5;;5296:4:::1;5269:42;::::0;::::1;4037:51:6::0;4104:18;;;4097:34;;;5227:37:5;;-1:-1:-1;;;;;;5269:18:5;::::1;::::0;::::1;::::0;4010::6;;5269:42:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5321:9;5316:133;5340:16;5336:1;:20;5316:133;;;5369:13;-1:-1:-1::0;;;;;5369:25:5::1;;5395:7;5404:10;;5415:1;5404:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:17;::::0;;::::1;:::i;:::-;5423:10;;5434:1;5423:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:19;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;5369:74;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5358:3;;;;:::i;:::-;;;5316:133;;5118:560;5614:59;::::0;-1:-1:-1;;;5614:59:5;;7969:2:6;5614:59:5::1;::::0;::::1;7951:21:6::0;8008:2;7988:18;;;7981:30;8047:34;8027:18;;;8020:62;-1:-1:-1;;;8098:18:6;;;8091:47;8155:19;;5614:59:5::1;7767:413:6::0;5118:560:5::1;5739:63;::::0;;5757:1:::1;8454:34:6::0;;8519:2;8504:18;;8497:34;;;-1:-1:-1;;;;;8567:15:6;;8547:18;;;8540:43;8614:2;8599:18;;8592:34;;;5739:63:5;;::::1;::::0;;;;8403:3:6;5739:63:5;;::::1;4198:1608;;;;980:889:::0;4031:1775;;;;;:::o;2522:1506::-;1047:41;;-1:-1:-1;;;1047:41:5;;1077:10;1047:41;;;1387:51:6;2623:11:5;;;;-1:-1:-1;;;;;1047:29:5;;;;;1360:18:6;;1047:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1039:102;;;;-1:-1:-1;;;1039:102:5;;;;;;;:::i;:::-;2786:25:::1;2825:11;2786:51;;2841:22;2882:14;-1:-1:-1::0;;;;;2882:35:5::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;2882:37:5::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;2866:55:::0;;::::1;::::0;;::::1;::::0;577:19:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;577:19:5;::::1;::::0;;;;2866:55;-1:-1:-1;2925:15:5::1;2949:44:::0;;;2945:792:::1;;3000:30;3050:11;3000:62;;3077:13;-1:-1:-1::0;;;;;3077:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3109:42;::::0;-1:-1:-1;;;3109:42:5;;3136:4:::1;3109:42;::::0;::::1;4037:51:6::0;4104:18;;;4097:34;;;3067:37:5;;-1:-1:-1;;;;;;3109:18:5;::::1;::::0;::::1;::::0;4010::6;;3109:42:5::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;3194:35:5::1;::::0;;;;::::1;::::0;;3220:4:::1;3194:35:::0;;-1:-1:-1;3194:35:5::1;::::0;;::::1;::::0;;;3235:49;;;;::::1;::::0;;;;;;::::1;::::0;;;3157:145;;-1:-1:-1;;;3157:145:5;;-1:-1:-1;;;;;3157:31:5;::::1;::::0;::::1;::::0;:145:::1;::::0;3194:35;;3235:49;3290:7;;3157:145:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2995:312;2945:792;;;657:12;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;657:12:5::1;::::0;;::::1;::::0;3317:45;;;3313:424:::1;;3369:23;3405:11;3369:48;;3432:13;-1:-1:-1::0;;;;;3432:25:5::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;3313:424;3961:63;::::0;;3979:1:::1;8454:34:6::0;;8519:2;8504:18;;8497:34;;;-1:-1:-1;;;;;8567:15:6;;8547:18;;;8540:43;8614:2;8599:18;;8592:34;;;3961:63:5;;::::1;::::0;;;;8403:3:6;3961:63:5;;::::1;2636:1392;;;980:889:::0;2522:1506;;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:785::-;324:6;332;340;348;401:2;389:9;380:7;376:23;372:32;369:52;;;417:1;414;407:12;369:52;440:29;459:9;440:29;:::i;:::-;430:39;;516:2;505:9;501:18;488:32;478:42;;571:2;560:9;556:18;543:32;594:18;635:2;627:6;624:14;621:34;;;651:1;648;641:12;621:34;689:6;678:9;674:22;664:32;;734:7;727:4;723:2;719:13;715:27;705:55;;756:1;753;746:12;705:55;796:2;783:16;822:2;814:6;811:14;808:34;;;838:1;835;828:12;808:34;891:7;886:2;876:6;873:1;869:14;865:2;861:23;857:32;854:45;851:65;;;912:1;909;902:12;851:65;192:785;;;;-1:-1:-1;;943:2:6;935:11;;-1:-1:-1;;;192:785:6:o;982:254::-;1050:6;1058;1111:2;1099:9;1090:7;1086:23;1082:32;1079:52;;;1127:1;1124;1117:12;1079:52;1150:29;1169:9;1150:29;:::i;:::-;1140:39;1226:2;1211:18;;;;1198:32;;-1:-1:-1;;;982:254:6:o;1449:277::-;1516:6;1569:2;1557:9;1548:7;1544:23;1540:32;1537:52;;;1585:1;1582;1575:12;1537:52;1617:9;1611:16;1670:5;1663:13;1656:21;1649:5;1646:32;1636:60;;1692:1;1689;1682:12;1636:60;1715:5;1449:277;-1:-1:-1;;;1449:277:6:o;1731:412::-;1933:2;1915:21;;;1972:2;1952:18;;;1945:30;2011:34;2006:2;1991:18;;1984:62;-1:-1:-1;;;2077:2:6;2062:18;;2055:46;2133:3;2118:19;;1731:412::o;2495:127::-;2556:10;2551:3;2547:20;2544:1;2537:31;2587:4;2584:1;2577:15;2611:4;2608:1;2601:15;2627:1042;2707:6;2738:2;2781;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;2830:9;2824:16;2859:18;2900:2;2892:6;2889:14;2886:34;;;2916:1;2913;2906:12;2886:34;2954:6;2943:9;2939:22;2929:32;;2999:7;2992:4;2988:2;2984:13;2980:27;2970:55;;3021:1;3018;3011:12;2970:55;3050:2;3044:9;3072:2;3068;3065:10;3062:36;;;3078:18;;:::i;:::-;3153:2;3147:9;3121:2;3207:13;;-1:-1:-1;;3203:22:6;;;3227:2;3199:31;3195:40;3183:53;;;3251:18;;;3271:22;;;3248:46;3245:72;;;3297:18;;:::i;:::-;3337:10;3333:2;3326:22;3372:2;3364:6;3357:18;3412:7;3407:2;3402;3398;3394:11;3390:20;3387:33;3384:53;;;3433:1;3430;3423:12;3384:53;3455:1;3446:10;;3465:129;3479:2;3476:1;3473:9;3465:129;;;3567:10;;;3563:19;;3557:26;3536:14;;;3532:23;;3525:59;3490:10;;;;3465:129;;;3636:1;3631:2;3626;3618:6;3614:15;3610:24;3603:35;3657:6;3647:16;;;;;;;;2627:1042;;;;:::o;3674:184::-;3744:6;3797:2;3785:9;3776:7;3772:23;3768:32;3765:52;;;3813:1;3810;3803:12;3765:52;-1:-1:-1;3836:16:6;;3674:184;-1:-1:-1;3674:184:6:o;4142:127::-;4203:10;4198:3;4194:20;4191:1;4184:31;4234:4;4231:1;4224:15;4258:4;4255:1;4248:15;4274:325;4368:4;4426:11;4413:25;4520:2;4516:7;4505:8;4489:14;4485:29;4481:43;4461:18;4457:68;4447:96;;4539:1;4536;4529:12;4447:96;4560:33;;;;;4274:325;-1:-1:-1;;4274:325:6:o;4604:522::-;4682:4;4688:6;4748:11;4735:25;4842:2;4838:7;4827:8;4811:14;4807:29;4803:43;4783:18;4779:68;4769:96;;4861:1;4858;4851:12;4769:96;4888:33;;4940:20;;;-1:-1:-1;4983:18:6;4972:30;;4969:50;;;5015:1;5012;5005:12;4969:50;5048:4;5036:17;;-1:-1:-1;5079:14:6;5075:27;;;5065:38;;5062:58;;;5116:1;5113;5106:12;5062:58;4604:522;;;;;:::o;5657:267::-;5746:6;5741:3;5734:19;5798:6;5791:5;5784:4;5779:3;5775:14;5762:43;-1:-1:-1;5850:1:6;5825:16;;;5843:4;5821:27;;;5814:38;;;;5906:2;5885:15;;;-1:-1:-1;;5881:29:6;5872:39;;;5868:50;;5657:267::o;5929:506::-;6172:6;6161:9;6154:25;6215:2;6210;6199:9;6195:18;6188:30;6135:4;6241:62;6299:2;6288:9;6284:18;6276:6;6268;6241:62;:::i;:::-;6351:9;6343:6;6339:22;6334:2;6323:9;6319:18;6312:50;6379;6422:6;6414;6406;6379:50;:::i;:::-;6371:58;5929:506;-1:-1:-1;;;;;;;;5929:506:6:o;6440:232::-;6479:3;6500:17;;;6497:140;;6559:10;6554:3;6550:20;6547:1;6540:31;6594:4;6591:1;6584:15;6622:4;6619:1;6612:15;6497:140;-1:-1:-1;6664:1:6;6653:13;;6440:232::o;6855:453::-;6753:12;;-1:-1:-1;;;;;6749:38:6;;;6737:51;;6837:4;6826:16;;;6820:23;6804:14;;;6797:47;6753:12;;6749:38;7254:2;7239:18;;6737:51;6826:16;;;;6820:23;6804:14;;;6797:47;7289:3;7274:19;;7267:35;;;;7141:3;7126:19;;6855:453::o",
+ "sourcePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol",
+ "compiler": {
+ "name": "solc",
+ "version": "0.8.17+commit.8df45f5f"
+ },
+ "ast": {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol",
+ "exportedSymbols": {
+ "Collection": [
+ 1167
+ ],
+ "CollectionHelpers": [
+ 89
+ ],
+ "ContractHelpers": [
+ 272
+ ],
+ "EvmToSubstrate": [
+ 2100
+ ],
+ "NftCrossAccountId": [
+ 700
+ ],
+ "Property": [
+ 1695
+ ],
+ "RftCrossAccountId": [
+ 1315
+ ],
+ "UniqueNFT": [
+ 893
+ ],
+ "UniqueRefungible": [
+ 1508
+ ],
+ "UniqueRefungibleToken": [
+ 1675
+ ]
+ },
+ "id": 2101,
+ "license": "Apache License",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1677,
+ "literals": [
+ "solidity",
+ ">=",
+ "0.8",
+ ".0"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "44:24:5"
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/CollectionHelpers.sol",
+ "file": "../api/CollectionHelpers.sol",
+ "id": 1679,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2101,
+ "sourceUnit": 90,
+ "src": "69:63:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1678,
+ "name": "CollectionHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 89,
+ "src": "77:17:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/ContractHelpers.sol",
+ "file": "../api/ContractHelpers.sol",
+ "id": 1681,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2101,
+ "sourceUnit": 278,
+ "src": "133:59:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1680,
+ "name": "ContractHelpers",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 272,
+ "src": "141:15:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungibleToken.sol",
+ "file": "../api/UniqueRefungibleToken.sol",
+ "id": 1683,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2101,
+ "sourceUnit": 1676,
+ "src": "193:71:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1682,
+ "name": "UniqueRefungibleToken",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1675,
+ "src": "201:21:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueRefungible.sol",
+ "file": "../api/UniqueRefungible.sol",
+ "id": 1687,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2101,
+ "sourceUnit": 1509,
+ "src": "265:102:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1684,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1508,
+ "src": "273:16:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1685,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1167,
+ "src": "291:10:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1686,
+ "name": "Tuple8",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1315,
+ "src": "303:6:5",
+ "typeDescriptions": {}
+ },
+ "local": "RftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "/home/praetorp/Repos/Polkadot/unique-chain/tests/src/eth/api/UniqueNFT.sol",
+ "file": "../api/UniqueNFT.sol",
+ "id": 1690,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2101,
+ "sourceUnit": 894,
+ "src": "368:76:5",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 1688,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 893,
+ "src": "376:9:5",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ },
+ {
+ "foreign": {
+ "id": 1689,
+ "name": "Tuple8",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 700,
+ "src": "387:6:5",
+ "typeDescriptions": {}
+ },
+ "local": "NftCrossAccountId",
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "canonicalName": "Property",
+ "id": 1695,
+ "members": [
+ {
+ "constant": false,
+ "id": 1692,
+ "mutability": "mutable",
+ "name": "key",
+ "nameLocation": "472:3:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1695,
+ "src": "465:10:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 1691,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "465:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1694,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "484:5:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1695,
+ "src": "478:11:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 1693,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "478:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Property",
+ "nameLocation": "453:8:5",
+ "nodeType": "StructDefinition",
+ "scope": 2101,
+ "src": "446:46:5",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "EvmToSubstrate",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2100,
+ "linearizedBaseContracts": [
+ 2100
+ ],
+ "name": "EvmToSubstrate",
+ "nameLocation": "503:14:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": true,
+ "id": 1703,
+ "mutability": "constant",
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "538:26:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2100,
+ "src": "521:76:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1696,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "521:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "526546756e6769626c65",
+ "id": 1700,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "583:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ },
+ "value": "ReFungible"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_cdb72fd4e1d0d6d4eebd7ab142113ec2b4b06ddb24324db5c287ef01ab484d6b",
+ "typeString": "literal_string \"ReFungible\""
+ }
+ ],
+ "id": 1699,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "577:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1698,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "577:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1701,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "577:19:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1697,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "567:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1702,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "567:30:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": true,
+ "id": 1711,
+ "mutability": "constant",
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nameLocation": "617:27:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2100,
+ "src": "600:70:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1704,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "600:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4e4654",
+ "id": 1708,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "663:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ },
+ "value": "NFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a",
+ "typeString": "literal_string \"NFT\""
+ }
+ ],
+ "id": 1707,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "657:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1706,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "657:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1709,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "657:12:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1705,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "647:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1710,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "647:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1732,
+ "nodeType": "Block",
+ "src": "980:889:5",
+ "statements": [
+ {
+ "assignments": [
+ 1717
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1717,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "995:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1732,
+ "src": "984:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1716,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1715,
+ "name": "Collection",
+ "nameLocations": [
+ "984:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1167,
+ "src": "984:10:5"
+ },
+ "referencedDeclaration": 1167,
+ "src": "984:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1721,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1719,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1713,
+ "src": "1023:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1718,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1167,
+ "src": "1012:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1167_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1012:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "984:51:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1725,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967281,
+ "src": "1077:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1726,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1081:6:5",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "1077:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1723,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1717,
+ "src": "1047:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1724,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1062:14:5",
+ "memberName": "isOwnerOrAdmin",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1131,
+ "src": "1047:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
+ "typeString": "function (address) view external returns (bool)"
+ }
+ },
+ "id": 1727,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1047:41:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "4f6e6c7920636f6c6c656374696f6e2061646d696e2f6f776e65722063616e2063616c6c2074686973206d6574686f64",
+ "id": 1728,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1090:50:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ },
+ "value": "Only collection admin/owner can call this method"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_9e1b1a457a3a51e38b70747f3c56c9a0ede0f22582e6963b10271c34b83f1ca3",
+ "typeString": "literal_string \"Only collection admin/owner can call this method\""
+ }
+ ],
+ "id": 1722,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "1039:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1039:102:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1730,
+ "nodeType": "ExpressionStatement",
+ "src": "1039:102:5"
+ },
+ {
+ "id": 1731,
+ "nodeType": "PlaceholderStatement",
+ "src": "1864:1:5"
+ }
+ ]
+ },
+ "id": 1733,
+ "name": "checkRestrictions",
+ "nameLocation": "941:17:5",
+ "nodeType": "ModifierDefinition",
+ "parameters": {
+ "id": 1714,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1713,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "967:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1733,
+ "src": "959:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1712,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "959:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "958:21:5"
+ },
+ "src": "932:937:5",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 1734,
+ "nodeType": "StructuredDocumentation",
+ "src": "1872:69:5",
+ "text": "@dev This emits when a mint to a substrate address has been made."
+ },
+ "eventSelector": "fb3433367f20c42151d30b3d2c634726a94c4f9fa7d45120606029741aeb7535",
+ "id": 1744,
+ "name": "MintToSub",
+ "nameLocation": "1949:9:5",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 1743,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1736,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toEth",
+ "nameLocation": "1967:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1744,
+ "src": "1959:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1735,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1959:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1738,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_toSub",
+ "nameLocation": "1983:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1744,
+ "src": "1975:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1737,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1975:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1740,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "1999:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1744,
+ "src": "1991:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1739,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1991:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1742,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "_tokenId",
+ "nameLocation": "2020:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1744,
+ "src": "2012:16:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1741,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2012:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1958:71:5"
+ },
+ "src": "1943:87:5"
+ },
+ {
+ "body": {
+ "id": 1887,
+ "nodeType": "Block",
+ "src": "2636:1392:5",
+ "statements": [
+ {
+ "assignments": [
+ 1757
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1757,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "2797:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1887,
+ "src": "2786:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1756,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1755,
+ "name": "Collection",
+ "nameLocations": [
+ "2786:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1167,
+ "src": "2786:10:5"
+ },
+ "referencedDeclaration": 1167,
+ "src": "2786:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1761,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1759,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1747,
+ "src": "2825:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1758,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1167,
+ "src": "2814:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1167_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1760,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2814:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2786:51:5"
+ },
+ {
+ "assignments": [
+ 1763
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1763,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "2849:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1887,
+ "src": "2841:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1762,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "2841:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1772,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1767,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1757,
+ "src": "2882:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1768,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2897:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1146,
+ "src": "2882:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1769,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2882:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2876:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1765,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "2876:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1770,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2876:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1764,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "2866:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1771,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2866:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2841:80:5"
+ },
+ {
+ "assignments": [
+ 1774
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1774,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2933:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1887,
+ "src": "2925:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1773,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2925:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1775,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2925:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1778,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1776,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1763,
+ "src": "2949:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1777,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1703,
+ "src": "2967:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "2949:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1825,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1823,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1763,
+ "src": "3317:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1824,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1711,
+ "src": "3335:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "3317:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1874,
+ "nodeType": "Block",
+ "src": "3668:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 1871,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3680:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 1870,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "3673:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 1872,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3673:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1873,
+ "nodeType": "ExpressionStatement",
+ "src": "3673:59:5"
+ }
+ ]
+ },
+ "id": 1875,
+ "nodeType": "IfStatement",
+ "src": "3313:424:5",
+ "trueBody": {
+ "id": 1869,
+ "nodeType": "Block",
+ "src": "3364:298:5",
+ "statements": [
+ {
+ "assignments": [
+ 1828
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1828,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "3379:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1869,
+ "src": "3369:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 1827,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1826,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "3369:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 893,
+ "src": "3369:9:5"
+ },
+ "referencedDeclaration": 893,
+ "src": "3369:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1832,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1830,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1747,
+ "src": "3405:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1829,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 893,
+ "src": "3395:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$893_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 1831,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3395:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3369:48:5"
+ },
+ {
+ "expression": {
+ "id": 1837,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1833,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3422:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1834,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1828,
+ "src": "3432:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3446:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 666,
+ "src": "3432:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 1836,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3432:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3422:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1838,
+ "nodeType": "ExpressionStatement",
+ "src": "3422:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1844,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3491:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3483:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1842,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3483:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3483:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1846,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3498:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1839,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1828,
+ "src": "3464:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1841,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3478:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 590,
+ "src": "3464:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3464:42:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1848,
+ "nodeType": "ExpressionStatement",
+ "src": "3464:42:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1855,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3575:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3567:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1853,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3567:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3567:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1857,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3582:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1852,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 700,
+ "src": "3549:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$700_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 1858,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3549:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3616:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3608:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1860,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3608:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1863,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3608:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1864,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1749,
+ "src": "3620:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1859,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 700,
+ "src": "3590:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$700_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 1865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3590:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "id": 1866,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3645:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1849,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1828,
+ "src": "3512:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 1851,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3526:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 643,
+ "src": "3512:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_Tuple8_$700_memory_ptr_$_t_struct$_Tuple8_$700_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct Tuple8 memory,struct Tuple8 memory,uint256) external"
+ }
+ },
+ "id": 1867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3512:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1868,
+ "nodeType": "ExpressionStatement",
+ "src": "3512:145:5"
+ }
+ ]
+ }
+ },
+ "id": 1876,
+ "nodeType": "IfStatement",
+ "src": "2945:792:5",
+ "trueBody": {
+ "id": 1822,
+ "nodeType": "Block",
+ "src": "2995:312:5",
+ "statements": [
+ {
+ "assignments": [
+ 1781
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1781,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "3017:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1822,
+ "src": "3000:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1780,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1779,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "3000:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1508,
+ "src": "3000:16:5"
+ },
+ "referencedDeclaration": 1508,
+ "src": "3000:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1785,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1783,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1747,
+ "src": "3050:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1782,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1508,
+ "src": "3033:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1508_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1784,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3033:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3000:62:5"
+ },
+ {
+ "expression": {
+ "id": 1790,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1786,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3067:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1787,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1781,
+ "src": "3077:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1788,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3091:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1273,
+ "src": "3077:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 1789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3077:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3067:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1791,
+ "nodeType": "ExpressionStatement",
+ "src": "3067:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1797,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3136:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1796,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3128:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1795,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3128:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1798,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3128:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1799,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3143:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1792,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1781,
+ "src": "3109:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3123:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1206,
+ "src": "3109:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3109:42:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1801,
+ "nodeType": "ExpressionStatement",
+ "src": "3109:42:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1808,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "3220:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1807,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3212:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3212:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1809,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3212:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1810,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3227:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1805,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1315,
+ "src": "3194:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$1315_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 1811,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3194:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1815,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3261:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1814,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3253:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1813,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3253:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1816,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3253:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1817,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1749,
+ "src": "3265:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1812,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1315,
+ "src": "3235:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$1315_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 1818,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3235:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "id": 1819,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "3290:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1802,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1781,
+ "src": "3157:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1804,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3171:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1250,
+ "src": "3157:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_Tuple8_$1315_memory_ptr_$_t_struct$_Tuple8_$1315_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct Tuple8 memory,struct Tuple8 memory,uint256) external"
+ }
+ },
+ "id": 1820,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3157:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1821,
+ "nodeType": "ExpressionStatement",
+ "src": "3157:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3979:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3971:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1878,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3971:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3971:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1882,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1749,
+ "src": "3983:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1883,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1747,
+ "src": "4003:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1884,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1774,
+ "src": "4016:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1877,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "3961:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 1885,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3961:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1886,
+ "nodeType": "EmitStatement",
+ "src": "3956:68:5"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 1745,
+ "nodeType": "StructuredDocumentation",
+ "src": "2033:487:5",
+ "text": "Set RFT collection that contract will work with. RFT tokens for fractionalized NFT tokens\n would be created in this collection.\n @dev Throws if RFT collection is already configured for this contract.\n Throws if collection of wrong type (NFT, Fungible) is provided instead\n of RFT collection.\n Throws if `msg.sender` is not owner or admin of provided RFT collection.\n Can only be called by contract owner.\n @param _collection address of RFT collection."
+ },
+ "functionSelector": "7a8d9786",
+ "id": 1888,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1752,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1747,
+ "src": "2623:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1753,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1751,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "2605:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1733,
+ "src": "2605:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "2605:30:5"
+ }
+ ],
+ "name": "mintToSubstrate",
+ "nameLocation": "2531:15:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1750,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1747,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "2555:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1888,
+ "src": "2547:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1746,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2547:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1749,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "2576:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1888,
+ "src": "2568:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1748,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2568:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2546:49:5"
+ },
+ "returnParameters": {
+ "id": 1754,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2636:0:5"
+ },
+ "scope": 2100,
+ "src": "2522:1506:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2098,
+ "nodeType": "Block",
+ "src": "4198:1608:5",
+ "statements": [
+ {
+ "assignments": [
+ 1903
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1903,
+ "mutability": "mutable",
+ "name": "propertiesLength",
+ "nameLocation": "4359:16:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2098,
+ "src": "4351:24:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1902,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4351:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1906,
+ "initialValue": {
+ "expression": {
+ "id": 1904,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1896,
+ "src": "4378:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 1905,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4389:6:5",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4378:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4351:44:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1908,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1903,
+ "src": "4407:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1909,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4426:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4407:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "50726f70657269657320697320656d707479",
+ "id": 1911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4429:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ },
+ "value": "Properies is empty"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_3c3e0098388726dfb54bb3f478f469c7fc9acc2aa2937bb94957726165b135a1",
+ "typeString": "literal_string \"Properies is empty\""
+ }
+ ],
+ "id": 1907,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967278,
+ 4294967278
+ ],
+ "referencedDeclaration": 4294967278,
+ "src": "4399:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1912,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4399:51:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1913,
+ "nodeType": "ExpressionStatement",
+ "src": "4399:51:5"
+ },
+ {
+ "assignments": [
+ 1916
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1916,
+ "mutability": "mutable",
+ "name": "commonContract",
+ "nameLocation": "4466:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2098,
+ "src": "4455:25:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ },
+ "typeName": {
+ "id": 1915,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1914,
+ "name": "Collection",
+ "nameLocations": [
+ "4455:10:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1167,
+ "src": "4455:10:5"
+ },
+ "referencedDeclaration": 1167,
+ "src": "4455:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1920,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1918,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1890,
+ "src": "4494:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1917,
+ "name": "Collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1167,
+ "src": "4483:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Collection_$1167_$",
+ "typeString": "type(contract Collection)"
+ }
+ },
+ "id": 1919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4483:23:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4455:51:5"
+ },
+ {
+ "assignments": [
+ 1922
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1922,
+ "mutability": "mutable",
+ "name": "collectionType",
+ "nameLocation": "4518:14:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2098,
+ "src": "4510:22:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 1921,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "4510:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1931,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1926,
+ "name": "commonContract",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1916,
+ "src": "4551:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Collection_$1167",
+ "typeString": "contract Collection"
+ }
+ },
+ "id": 1927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4566:20:5",
+ "memberName": "uniqueCollectionType",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1146,
+ "src": "4551:35:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
+ "typeString": "function () view external returns (string memory)"
+ }
+ },
+ "id": 1928,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4551:37:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ ],
+ "id": 1925,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4545:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
+ "typeString": "type(bytes storage pointer)"
+ },
+ "typeName": {
+ "id": 1924,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "4545:5:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1929,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4545:44:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 1923,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967288,
+ "src": "4535:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 1930,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4535:55:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4510:80:5"
+ },
+ {
+ "assignments": [
+ 1933
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1933,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4602:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2098,
+ "src": "4594:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1932,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4594:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1934,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4594:15:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 1937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1935,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1922,
+ "src": "4618:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1936,
+ "name": "REFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1703,
+ "src": "4636:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "4618:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "id": 2010,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2008,
+ "name": "collectionType",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1922,
+ "src": "5122:14:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2009,
+ "name": "NONFUNGIBLE_COLLECTION_TYPE",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1711,
+ "src": "5140:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "src": "5122:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 2085,
+ "nodeType": "Block",
+ "src": "5609:69:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "hexValue": "57726f6e6720636f6c6c656374696f6e20747970652e20576f726b73206f6e6c792077697468204e4654206f7220524654",
+ "id": 2082,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5621:51:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ },
+ "value": "Wrong collection type. Works only with NFT or RFT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_stringliteral_a720d6ef8719206bfa9a6cc035f350312523cbf9cf6cd62b2324270bef55372a",
+ "typeString": "literal_string \"Wrong collection type. Works only with NFT or RFT\""
+ }
+ ],
+ "id": 2081,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "5614:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (string memory) pure"
+ }
+ },
+ "id": 2083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5614:59:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2084,
+ "nodeType": "ExpressionStatement",
+ "src": "5614:59:5"
+ }
+ ]
+ },
+ "id": 2086,
+ "nodeType": "IfStatement",
+ "src": "5118:560:5",
+ "trueBody": {
+ "id": 2080,
+ "nodeType": "Block",
+ "src": "5169:434:5",
+ "statements": [
+ {
+ "assignments": [
+ 2013
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2013,
+ "mutability": "mutable",
+ "name": "nftCollection",
+ "nameLocation": "5184:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2080,
+ "src": "5174:23:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ },
+ "typeName": {
+ "id": 2012,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 2011,
+ "name": "UniqueNFT",
+ "nameLocations": [
+ "5174:9:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 893,
+ "src": "5174:9:5"
+ },
+ "referencedDeclaration": 893,
+ "src": "5174:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2017,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 2015,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1890,
+ "src": "5210:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2014,
+ "name": "UniqueNFT",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 893,
+ "src": "5200:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueNFT_$893_$",
+ "typeString": "type(contract UniqueNFT)"
+ }
+ },
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5200:22:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5174:48:5"
+ },
+ {
+ "expression": {
+ "id": 2022,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2018,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5227:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 2019,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2013,
+ "src": "5237:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2020,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5251:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 666,
+ "src": "5237:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 2021,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5237:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5227:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2023,
+ "nodeType": "ExpressionStatement",
+ "src": "5227:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2029,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "5296:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2028,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5288:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2027,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5288:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2030,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5288:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2031,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5303:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2024,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2013,
+ "src": "5269:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2026,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5283:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 590,
+ "src": "5269:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 2032,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5269:42:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2033,
+ "nodeType": "ExpressionStatement",
+ "src": "5269:42:5"
+ },
+ {
+ "body": {
+ "id": 2058,
+ "nodeType": "Block",
+ "src": "5363:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2047,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5395:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2048,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1896,
+ "src": "5404:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2050,
+ "indexExpression": {
+ "id": 2049,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2035,
+ "src": "5415:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5404:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1695_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2051,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5418:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1692,
+ "src": "5404:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 2052,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1896,
+ "src": "5423:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 2054,
+ "indexExpression": {
+ "id": 2053,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2035,
+ "src": "5434:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5423:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1695_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 2055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5437:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1694,
+ "src": "5423:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 2044,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2013,
+ "src": "5369:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2046,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5383:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 318,
+ "src": "5369:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 2056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5369:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2057,
+ "nodeType": "ExpressionStatement",
+ "src": "5369:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2038,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2035,
+ "src": "5336:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2039,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1903,
+ "src": "5340:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5336:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2059,
+ "initializationExpression": {
+ "assignments": [
+ 2035
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2035,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "5329:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2059,
+ "src": "5321:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2034,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5321:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2037,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 2036,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5333:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "5321:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 2042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "5358:3:5",
+ "subExpression": {
+ "id": 2041,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2035,
+ "src": "5360:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2043,
+ "nodeType": "ExpressionStatement",
+ "src": "5358:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "5316:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2066,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "5516:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 2065,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5508:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2064,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5508:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2067,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5508:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 2068,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5523:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2063,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 700,
+ "src": "5490:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$700_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 2069,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5490:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2073,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5557:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2072,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5549:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2071,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5549:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2074,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5549:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2075,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1892,
+ "src": "5561:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2070,
+ "name": "NftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 700,
+ "src": "5531:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$700_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 2076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5531:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "id": 2077,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5586:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$700_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 2060,
+ "name": "nftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2013,
+ "src": "5453:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueNFT_$893",
+ "typeString": "contract UniqueNFT"
+ }
+ },
+ "id": 2062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5467:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 643,
+ "src": "5453:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_Tuple8_$700_memory_ptr_$_t_struct$_Tuple8_$700_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct Tuple8 memory,struct Tuple8 memory,uint256) external"
+ }
+ },
+ "id": 2078,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5453:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2079,
+ "nodeType": "ExpressionStatement",
+ "src": "5453:145:5"
+ }
+ ]
+ }
+ },
+ "id": 2087,
+ "nodeType": "IfStatement",
+ "src": "4614:1064:5",
+ "trueBody": {
+ "id": 2007,
+ "nodeType": "Block",
+ "src": "4664:448:5",
+ "statements": [
+ {
+ "assignments": [
+ 1940
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1940,
+ "mutability": "mutable",
+ "name": "rftCollection",
+ "nameLocation": "4686:13:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2007,
+ "src": "4669:30:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ },
+ "typeName": {
+ "id": 1939,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1938,
+ "name": "UniqueRefungible",
+ "nameLocations": [
+ "4669:16:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1508,
+ "src": "4669:16:5"
+ },
+ "referencedDeclaration": 1508,
+ "src": "4669:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1944,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1942,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1890,
+ "src": "4719:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1941,
+ "name": "UniqueRefungible",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1508,
+ "src": "4702:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_UniqueRefungible_$1508_$",
+ "typeString": "type(contract UniqueRefungible)"
+ }
+ },
+ "id": 1943,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4702:29:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4669:62:5"
+ },
+ {
+ "expression": {
+ "id": 1949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1945,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "4736:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "id": 1946,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "4746:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1947,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4760:11:5",
+ "memberName": "nextTokenId",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1273,
+ "src": "4746:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
+ "typeString": "function () view external returns (uint256)"
+ }
+ },
+ "id": 1948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4746:27:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4736:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1950,
+ "nodeType": "ExpressionStatement",
+ "src": "4736:37:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1956,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "4805:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4797:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1954,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4797:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1957,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4797:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1958,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "4812:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1951,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "4778:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1953,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4792:4:5",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1206,
+ "src": "4778:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1959,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4778:42:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1960,
+ "nodeType": "ExpressionStatement",
+ "src": "4778:42:5"
+ },
+ {
+ "body": {
+ "id": 1985,
+ "nodeType": "Block",
+ "src": "4872:86:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1974,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "4904:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 1975,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1896,
+ "src": "4913:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 1977,
+ "indexExpression": {
+ "id": 1976,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4924:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4913:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1695_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 1978,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4927:3:5",
+ "memberName": "key",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1692,
+ "src": "4913:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ }
+ },
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 1979,
+ "name": "properties",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1896,
+ "src": "4932:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property calldata[] calldata"
+ }
+ },
+ "id": 1981,
+ "indexExpression": {
+ "id": 1980,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4943:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4932:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1695_calldata_ptr",
+ "typeString": "struct Property calldata"
+ }
+ },
+ "id": 1982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4946:5:5",
+ "memberName": "value",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1694,
+ "src": "4932:19:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_string_calldata_ptr",
+ "typeString": "string calldata"
+ },
+ {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ ],
+ "expression": {
+ "id": 1971,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "4878:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4892:11:5",
+ "memberName": "setProperty",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 934,
+ "src": "4878:25:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
+ "typeString": "function (uint256,string memory,bytes memory) external"
+ }
+ },
+ "id": 1983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4878:74:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1984,
+ "nodeType": "ExpressionStatement",
+ "src": "4878:74:5"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1967,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1965,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4845:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1966,
+ "name": "propertiesLength",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1903,
+ "src": "4849:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4845:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1986,
+ "initializationExpression": {
+ "assignments": [
+ 1962
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1962,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4838:1:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1986,
+ "src": "4830:9:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1961,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4830:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1964,
+ "initialValue": {
+ "hexValue": "30",
+ "id": 1963,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4842:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4830:13:5"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 1969,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": true,
+ "src": "4867:3:5",
+ "subExpression": {
+ "id": 1968,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4869:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1970,
+ "nodeType": "ExpressionStatement",
+ "src": "4867:3:5"
+ },
+ "nodeType": "ForStatement",
+ "src": "4825:133:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1993,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 4294967268,
+ "src": "5025:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_EvmToSubstrate_$2100",
+ "typeString": "contract EvmToSubstrate"
+ }
+ ],
+ "id": 1992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5017:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1991,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5017:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1994,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5017:13:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "hexValue": "30",
+ "id": 1995,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5032:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1990,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1315,
+ "src": "4999:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$1315_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 1996,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4999:35:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2000,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5066:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1999,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5058:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1998,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5058:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2001,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5058:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2002,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1892,
+ "src": "5070:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1997,
+ "name": "RftCrossAccountId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1315,
+ "src": "5040:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Tuple8_$1315_storage_ptr_$",
+ "typeString": "type(struct Tuple8 storage pointer)"
+ }
+ },
+ "id": 2003,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5040:49:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ }
+ },
+ {
+ "id": 2004,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5095:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_struct$_Tuple8_$1315_memory_ptr",
+ "typeString": "struct Tuple8 memory"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1987,
+ "name": "rftCollection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1940,
+ "src": "4962:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_UniqueRefungible_$1508",
+ "typeString": "contract UniqueRefungible"
+ }
+ },
+ "id": 1989,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4976:17:5",
+ "memberName": "transferFromCross",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1250,
+ "src": "4962:31:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_struct$_Tuple8_$1315_memory_ptr_$_t_struct$_Tuple8_$1315_memory_ptr_$_t_uint256_$returns$__$",
+ "typeString": "function (struct Tuple8 memory,struct Tuple8 memory,uint256) external"
+ }
+ },
+ "id": 2005,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4962:145:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2006,
+ "nodeType": "ExpressionStatement",
+ "src": "4962:145:5"
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5757:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5749:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2089,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5749:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5749:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2093,
+ "name": "_substrateReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1892,
+ "src": "5761:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2094,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1890,
+ "src": "5781:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2095,
+ "name": "tokenId",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1933,
+ "src": "5794:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2088,
+ "name": "MintToSub",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "5739:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,address,uint256)"
+ }
+ },
+ "id": 2096,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5739:63:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2097,
+ "nodeType": "EmitStatement",
+ "src": "5734:68:5"
+ }
+ ]
+ },
+ "functionSelector": "440dff9d",
+ "id": 2099,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "id": 1899,
+ "name": "_collection",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1890,
+ "src": "4185:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1900,
+ "kind": "modifierInvocation",
+ "modifierName": {
+ "id": 1898,
+ "name": "checkRestrictions",
+ "nameLocations": [
+ "4167:17:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1733,
+ "src": "4167:17:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "4167:30:5"
+ }
+ ],
+ "name": "mintToSubstrateWithProperty",
+ "nameLocation": "4040:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1897,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1890,
+ "mutability": "mutable",
+ "name": "_collection",
+ "nameLocation": "4079:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2099,
+ "src": "4071:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1889,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4071:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1892,
+ "mutability": "mutable",
+ "name": "_substrateReceiver",
+ "nameLocation": "4102:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2099,
+ "src": "4094:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1891,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4094:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1896,
+ "mutability": "mutable",
+ "name": "properties",
+ "nameLocation": "4144:10:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 2099,
+ "src": "4124:30:5",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_calldata_ptr_$dyn_calldata_ptr",
+ "typeString": "struct Property[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1894,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 1893,
+ "name": "Property",
+ "nameLocations": [
+ "4124:8:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1695,
+ "src": "4124:8:5"
+ },
+ "referencedDeclaration": 1695,
+ "src": "4124:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Property_$1695_storage_ptr",
+ "typeString": "struct Property"
+ }
+ },
+ "id": 1895,
+ "nodeType": "ArrayTypeName",
+ "src": "4124:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_struct$_Property_$1695_storage_$dyn_storage_ptr",
+ "typeString": "struct Property[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4067:90:5"
+ },
+ "returnParameters": {
+ "id": 1901,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4198:0:5"
+ },
+ "scope": 2100,
+ "src": "4031:1775:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2101,
+ "src": "494:5314:5",
+ "usedErrors": []
+ }
+ ],
+ "src": "44:5765:5"
+ },
+ "functionHashes": {
+ "mintToSubstrate(address,uint256)": "7a8d9786",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "440dff9d"
+ },
+ "gasEstimates": {
+ "creation": {
+ "codeDepositCost": "730800",
+ "executionCost": "766",
+ "totalCost": "731566"
+ },
+ "external": {
+ "mintToSubstrate(address,uint256)": "infinite",
+ "mintToSubstrateWithProperty(address,uint256,(string,bytes)[])": "infinite"
+ }
+ }
+}
\ No newline at end of file
tests/src/eth/evmToSubstrate/ABIGEN/EvmToSubstrate.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/ABIGEN/EvmToSubstrate.ts
@@ -0,0 +1,67 @@
+/* Autogenerated file. Do not edit manually. */
+/* tslint:disable */
+/* eslint-disable */
+
+import type BN from "bn.js";
+import type { ContractOptions } from "web3-eth-contract";
+import type { EventLog } from "web3-core";
+import type { EventEmitter } from "events";
+import type {
+ Callback,
+ PayableTransactionObject,
+ NonPayableTransactionObject,
+ BlockType,
+ ContractEventLog,
+ BaseContract,
+} from "./types";
+
+export interface EventOptions {
+ filter?: object;
+ fromBlock?: BlockType;
+ topics?: string[];
+}
+
+export type MintToSub = ContractEventLog<{
+ _toEth: string;
+ _toSub: string;
+ _collection: string;
+ _tokenId: string;
+ 0: string;
+ 1: string;
+ 2: string;
+ 3: string;
+}>;
+
+export interface EvmToSubstrate extends BaseContract {
+ constructor(
+ jsonInterface: any[],
+ address?: string,
+ options?: ContractOptions
+ ): EvmToSubstrate;
+ clone(): EvmToSubstrate;
+ methods: {
+ mintToSubstrate(
+ _collection: string,
+ _substrateReceiver: number | string | BN
+ ): NonPayableTransactionObject<void>;
+
+ mintToSubstrateWithProperty(
+ _collection: string,
+ _substrateReceiver: number | string | BN,
+ properties: [string, string | number[]][]
+ ): NonPayableTransactionObject<void>;
+ };
+ events: {
+ MintToSub(cb?: Callback<MintToSub>): EventEmitter;
+ MintToSub(options?: EventOptions, cb?: Callback<MintToSub>): EventEmitter;
+
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
+ };
+
+ once(event: "MintToSub", cb: Callback<MintToSub>): void;
+ once(
+ event: "MintToSub",
+ options: EventOptions,
+ cb: Callback<MintToSub>
+ ): void;
+}
tests/src/eth/evmToSubstrate/ABIGEN/index.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/ABIGEN/index.ts
@@ -0,0 +1,4 @@
+/* Autogenerated file. Do not edit manually. */
+/* tslint:disable */
+/* eslint-disable */
+export type { EvmToSubstrate } from "./EvmToSubstrate";
tests/src/eth/evmToSubstrate/ABIGEN/types.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/ABIGEN/types.ts
@@ -0,0 +1,73 @@
+/* Autogenerated file. Do not edit manually. */
+/* tslint:disable */
+/* eslint-disable */
+import type BN from "bn.js";
+import type { EventEmitter } from "events";
+import type { EventLog, PromiEvent, TransactionReceipt } from "web3-core/types";
+import type { Contract } from "web3-eth-contract";
+
+export interface EstimateGasOptions {
+ from?: string;
+ gas?: number;
+ value?: number | string | BN;
+}
+
+export interface EventOptions {
+ filter?: object;
+ fromBlock?: BlockType;
+ topics?: string[];
+}
+
+export type Callback<T> = (error: Error, result: T) => void;
+export interface ContractEventLog<T> extends EventLog {
+ returnValues: T;
+}
+export interface ContractEventEmitter<T> extends EventEmitter {
+ on(event: "connected", listener: (subscriptionId: string) => void): this;
+ on(
+ event: "data" | "changed",
+ listener: (event: ContractEventLog<T>) => void
+ ): this;
+ on(event: "error", listener: (error: Error) => void): this;
+}
+
+export interface NonPayableTx {
+ nonce?: string | number | BN;
+ chainId?: string | number | BN;
+ from?: string;
+ to?: string;
+ data?: string;
+ gas?: string | number | BN;
+ maxPriorityFeePerGas?: string | number | BN;
+ maxFeePerGas?: string | number | BN;
+ gasPrice?: string | number | BN;
+}
+
+export interface PayableTx extends NonPayableTx {
+ value?: string | number | BN;
+}
+
+export interface NonPayableTransactionObject<T> {
+ arguments: any[];
+ call(tx?: NonPayableTx, block?: BlockType): Promise<T>;
+ send(tx?: NonPayableTx): PromiEvent<TransactionReceipt>;
+ estimateGas(tx?: NonPayableTx): Promise<number>;
+ encodeABI(): string;
+}
+
+export interface PayableTransactionObject<T> {
+ arguments: any[];
+ call(tx?: PayableTx, block?: BlockType): Promise<T>;
+ send(tx?: PayableTx): PromiEvent<TransactionReceipt>;
+ estimateGas(tx?: PayableTx): Promise<number>;
+ encodeABI(): string;
+}
+
+export type BlockType =
+ | "latest"
+ | "pending"
+ | "genesis"
+ | "earliest"
+ | number
+ | BN;
+export type BaseContract = Omit<Contract, "clone" | "once">;
tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.soldiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/EvmToSubstrateHelper.sol
@@ -0,0 +1,179 @@
+// SPDX-License-Identifier: Apache License
+pragma solidity >=0.8.0;
+import {CollectionHelpers} from "../api/CollectionHelpers.sol";
+import {ContractHelpers} from "../api/ContractHelpers.sol";
+import {UniqueRefungibleToken} from "../api/UniqueRefungibleToken.sol";
+import {UniqueRefungible, Collection, EthCrossAccount as RftCrossAccountId, Tuple20 as RftProperties} from "../api/UniqueRefungible.sol";
+import {UniqueNFT, EthCrossAccount as NftCrossAccountId, Tuple21 as NftProperty, TokenProperties} from "../api/UniqueNFT.sol";
+
+struct Property {
+ string key;
+ bytes value;
+}
+
+// interface Foo {
+// struct Tuple19 {
+// string field_0;
+// bytes field_1;
+// }
+
+// }
+
+contract EvmToSubstrate {
+ bytes32 constant REFUNGIBLE_COLLECTION_TYPE = keccak256(bytes("ReFungible"));
+ bytes32 constant NONFUNGIBLE_COLLECTION_TYPE = keccak256(bytes("NFT"));
+ // bytes32 collectionType;
+
+ // Collection commonContract;
+ // UniqueNFT nftCollection;
+ // UniqueRefungible rftCollection;
+
+ // function(address, uint256) external returns (bool) mintInvoke;
+ // function(address, address, uint256) external transferInvoke;
+
+ modifier checkRestrictions(address _collection) {
+ Collection commonContract = Collection(_collection);
+ require(commonContract.isOwnerOrAdmin(msg.sender), "Only collection admin/owner can call this method");
+
+ // bytes32 collectionType = keccak256(bytes(commonContract.uniqueCollectionType()));
+ // uint256 tokenId;
+
+ // if (collectionType == REFUNGIBLE_COLLECTION_TYPE) {
+ // UniqueRefungible rftCollection = UniqueRefungible(_collection);
+ // mintInvoke = rftCollection.mint;
+ // transferInvoke = rftCollection.transferFrom;
+ // tokenId = rftCollection.nextTokenId();
+ // } else if (collectionType == NONFUNGIBLE_COLLECTION_TYPE) {
+ // UniqueNFT nftCollection = UniqueNFT(_collection);
+ // mintInvoke = nftCollection.mint;
+ // transferInvoke = nftCollection.transferFrom;
+
+ // tokenId = nftCollection.nextTokenId();
+ // } else {
+ // revert("Wrong collection type. Works only with NFT or RFT");
+ // }
+
+ _;
+ }
+
+ /// @dev This emits when a mint to a substrate address has been made.
+ event MintToSub(address _toEth, uint256 _toSub, address _collection, uint256 _tokenId);
+
+ function mintToSubstrate(address _collection, uint256 _substrateReceiver) external checkRestrictions(_collection) {
+ // function(address, uint256) external returns (bool) mintInvoke;
+ // function(Tuple8 memory, Tuple8 memory, uint256) external transferInvoke;
+ Collection commonContract = Collection(_collection);
+ bytes32 collectionType = keccak256(bytes(commonContract.uniqueCollectionType()));
+ uint256 tokenId;
+
+ if (collectionType == REFUNGIBLE_COLLECTION_TYPE) {
+ UniqueRefungible rftCollection = UniqueRefungible(_collection);
+
+ tokenId = rftCollection.mint(address(this));
+
+ rftCollection.transferFromCross(
+ RftCrossAccountId(address(this), 0),
+ RftCrossAccountId(address(0), _substrateReceiver),
+ tokenId
+ );
+ } else if (collectionType == NONFUNGIBLE_COLLECTION_TYPE) {
+ UniqueNFT nftCollection = UniqueNFT(_collection);
+ // tokenId = nftCollection.nextTokenId();
+ tokenId = nftCollection.mint(address(this));
+
+ nftCollection.transferFromCross(
+ NftCrossAccountId(address(this), 0),
+ NftCrossAccountId(address(0), _substrateReceiver),
+ tokenId
+ );
+ } else {
+ revert("Wrong collection type. Works only with NFT or RFT");
+ }
+
+ // mintInvoke(address(this), tokenId);
+ // Tuple8 memory sender = Tuple8(address(this), 0);
+ // Tuple8 memory receiver = Tuple8(address(0), _substrateReceiver);
+
+ // transferInvoke(sender, receiver, tokenId);
+
+ emit MintToSub(address(0), _substrateReceiver, _collection, tokenId);
+ }
+
+ function mintToSubstrateWithProperty(
+ address _collection,
+ uint256 _substrateReceiver,
+ Property[] calldata properties
+ ) external checkRestrictions(_collection) {
+ // function(address, uint256, string memory) external returns (bool) mintInvoke;
+ // function(address, address, uint256) external transferInvoke;
+ uint256 propertiesLength = properties.length;
+ require(propertiesLength > 0, "Properies is empty");
+
+ Collection commonContract = Collection(_collection);
+ bytes32 collectionType = keccak256(bytes(commonContract.uniqueCollectionType()));
+ uint256 tokenId;
+
+ if (collectionType == REFUNGIBLE_COLLECTION_TYPE) {
+ UniqueRefungible rftCollection = UniqueRefungible(_collection);
+ tokenId = rftCollection.nextTokenId();
+ rftCollection.mint(address(this));
+ for (uint256 i = 0; i < propertiesLength; ++i) {
+ rftCollection.setProperty(tokenId, properties[i].key, properties[i].value);
+ }
+ rftCollection.transferFromCross(
+ RftCrossAccountId(address(this), 0),
+ RftCrossAccountId(address(0), _substrateReceiver),
+ tokenId
+ );
+ } else if (collectionType == NONFUNGIBLE_COLLECTION_TYPE) {
+ UniqueNFT nftCollection = UniqueNFT(_collection);
+ // tokenId = nftCollection.nextTokenId();
+ tokenId = nftCollection.mint(address(this));
+ for (uint256 i = 0; i < propertiesLength; ++i) {
+ nftCollection.setProperty(tokenId, properties[i].key, properties[i].value);
+ }
+ nftCollection.transferFromCross(
+ NftCrossAccountId(address(this), 0),
+ NftCrossAccountId(address(0), _substrateReceiver),
+ tokenId
+ );
+ } else {
+ revert("Wrong collection type. Works only with NFT or RFT");
+ }
+
+ // transferInvoke(address(this), _gap, tokenId);
+
+ emit MintToSub(address(0), _substrateReceiver, _collection, tokenId);
+ }
+
+ function mintToSubstrateBulkProperty(
+ address _collection,
+ uint256 _substrateReceiver,
+ NftProperty[] calldata _properties
+ ) external checkRestrictions(_collection) {
+ uint256 propertiesLength = _properties.length;
+ require(propertiesLength > 0, "Properies is empty");
+
+ Collection commonContract = Collection(_collection);
+ bytes32 collectionType = keccak256(bytes(commonContract.uniqueCollectionType()));
+ uint256 tokenId;
+
+ if (collectionType == REFUNGIBLE_COLLECTION_TYPE) {} else if (collectionType == NONFUNGIBLE_COLLECTION_TYPE) {
+ UniqueNFT nftCollection = UniqueNFT(_collection);
+ // tokenId = nftCollection.nextTokenId();
+ tokenId = nftCollection.mint(address(this));
+
+ nftCollection.setProperties(tokenId, _properties);
+
+ nftCollection.transferFromCross(
+ NftCrossAccountId(address(this), 0),
+ NftCrossAccountId(address(0), _substrateReceiver),
+ tokenId
+ );
+ } else {
+ revert("Wrong collection type. Works only with NFT or RFT");
+ }
+
+ emit MintToSub(address(0), _substrateReceiver, _collection, tokenId);
+ }
+}
tests/src/eth/evmToSubstrate/abigen.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/abigen.ts
@@ -0,0 +1,19 @@
+import {runTypeChain, glob} from 'typechain';
+
+
+async function main() {
+ const cwd = process.cwd();
+
+ // find all files matching the glob
+ const allFiles = glob(cwd, ['./ABI/*.json']);
+
+ const result = await runTypeChain({
+ cwd,
+ filesToProcess: allFiles,
+ allFiles,
+ outDir: 'ABIGEN',
+ target: 'web3-v1',
+ });
+}
+
+main().catch(console.error);
\ No newline at end of file
tests/src/eth/evmToSubstrate/addressResearch.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/addressResearch.ts
@@ -0,0 +1,191 @@
+// import {createEthAccountWithBalance} from '../util/helpers';
+import {EthUniqueHelper, usingEthPlaygrounds} from '../util/playgrounds';
+import {readFile} from 'fs/promises';
+import {ContractImports} from '../util/playgrounds/types';
+import {Contract} from '@polkadot/api-contract/base';
+import Web3 from 'web3';
+import {IProperty, ITokenPropertyPermission} from '../../util/playgrounds/types';
+import {addressToEvm, decodeAddress} from '@polkadot/util-crypto';
+import nonFungibleAbi from '../nonFungibleAbi.json';
+import {CrossAccountId} from '../../util/helpers';
+import {IKeyringPair} from '@polkadot/types/types';
+
+enum SponsoringMode {
+ Disabled = 0,
+ Allowlisted = 1,
+ Generous = 2,
+}
+
+const WS_ENDPOINT = 'wss://ws-rc.unique.network';
+const CONTRACT_IMPORT: ContractImports[] = [
+ {
+ fsPath: `${__dirname}/../api/CollectionHelpers.sol`,
+ solPath: 'api/CollectionHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/ContractHelpers.sol`,
+ solPath: 'api/ContractHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungibleToken.sol`,
+ solPath: 'api/UniqueRefungibleToken.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungible.sol`,
+ solPath: 'api/UniqueRefungible.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueNFT.sol`,
+ solPath: 'api/UniqueNFT.sol',
+ },
+];
+const main = async () => {
+ await usingEthPlaygrounds(async (helper, privateKey) => {
+ const contract_source = (
+ await readFile(`${__dirname}/EvmToSubstrateHelper.sol`)
+ ).toString();
+
+
+ const donor = privateKey('//Alice'); // Seed from account with balance on this network
+ const myAccount = privateKey('//Bob'); // replace with account from polkadot extension
+ console.log('donor raw sub: ', donor.addressRaw);
+ console.log('donor sub->eth->sub: ', decodeAddress(await helper.address.ethToSubstrate(helper.address.substrateToEth(donor.address))));
+ console.log('donor sub: ', donor.address);
+
+ console.log('donor raw eth: ', Uint8Array.from(Buffer.from(helper.address.substrateToEth(donor.address).slice(2), 'hex')));
+ console.log('donor eth: ', helper.address.substrateToEth(donor.address));
+
+ const signer = await helper.eth.createAccountWithBalance(donor, 100n);
+
+ console.log('\nsigner eth: ', signer);
+ console.log('signer raw eth: ', Uint8Array.from(Buffer.from(signer.slice(2), 'hex')));
+ console.log('signer raw sub: ', decodeAddress(await helper.address.ethToSubstrate(signer)));
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ // await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ // await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addToAllowList(donor, {Substrate: myAccount.address});
+ // await collection.addAdmin(donor, {Ethereum: signer});
+ // await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+
+ console.log('collection admin(s)): ', await collection.getAdmins());
+ console.log('collection owner(s)): ', await collection.getAllowList());
+
+
+ const collectionEthAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+ const collectionContract = helper.ethNativeContract.collection(
+ collectionEthAddress,
+ 'nft',
+ );
+ const receiverEthAddress = helper.address.substrateToEth(myAccount.address);
+
+ console.log('myAccount eth mirror: ', receiverEthAddress);
+ console.log('contract eth mirror: ', collectionEthAddress);
+
+ let subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ const encodedCall = collectionContract.methods
+ .mint(receiverEthAddress, subTokenId)
+ .encodeABI();
+
+ const ethFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+ await helper.eth.sendEVM(
+ myAccount,
+ collectionContract.options.address,
+ encodedCall,
+ '0',
+ );
+ },
+ );
+
+ console.log(`\ncollection mint from eth : ${ethFee}\n`);
+
+ // subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ // const contract = await helper.ethContract.deployByCode(signer, 'EvmToSubstrate', contract_source, CONTRACT_IMPORT);
+ // console.log('contract Address', contract.options.address);
+ // await helper.eth.transferBalanceFromSubstrate(donor, contract.options.address, 100n);
+
+ // await collection.addToAllowList(donor, {Ethereum: contract.options.address});
+ // await collection.addAdmin(donor, {Ethereum: contract.options.address});
+
+
+ // const feeForProxyContractMinting = await helper.arrange.calculcateFee(
+ // {Ethereum: signer},
+ // async () => {
+ // await contract.methods.mintToSubstrate(helper.ethAddress.fromCollectionId(collection.collectionId), myAccount.addressRaw).send({from: signer});
+ // },
+ // );
+
+ // console.log(`\ncollection mint from contract to the Substrate Id: ${feeForProxyContractMinting}\n`);
+ subTokenId = await collectionContract.methods.nextTokenId().call();
+ console.log(subTokenId);
+
+ console.log('All done');
+ });
+};
+
+main()
+ .then(() => process.exit(0))
+ .catch((e) => {
+ console.log(e);
+ process.exit(1);
+ });
+
+
+async function createCollectionForPropertiesBenchmarks(
+ helper: EthUniqueHelper,
+ privateKey: (seed: string) => IKeyringPair,
+ ethSigner: string,
+ proxyContract: string,
+ permissions: ITokenPropertyPermission[],
+) {
+
+ const donor = privateKey('//Alice'); // Seed from account with balance on this network
+
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addAdmin(donor, {Ethereum: ethSigner});
+ await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Ethereum: proxyContract});
+ await collection.addAdmin(donor, {Ethereum: proxyContract});
+ await collection.setTokenPropertyPermissions(donor, permissions);
+
+ return collection;
+}
\ No newline at end of file
tests/src/eth/evmToSubstrate/feeBench.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/feeBench.ts
@@ -0,0 +1,314 @@
+import {EthUniqueHelper, usingEthPlaygrounds} from '../util';
+import {readFile} from 'fs/promises';
+import {ContractImports} from '../util/playgrounds/types';
+import {Contract} from '@polkadot/api-contract/base';
+import Web3 from 'web3';
+import {IProperty, ITokenPropertyPermission} from '../../util/playgrounds/types';
+import {addressToEvm, decodeAddress} from '@polkadot/util-crypto';
+import nonFungibleAbi from '../nonFungibleAbi.json';
+import {IKeyringPair} from '@polkadot/types/types';
+
+enum SponsoringMode {
+ Disabled = 0,
+ Allowlisted = 1,
+ Generous = 2,
+}
+
+const WS_ENDPOINT = 'wss://ws-rc.unique.network';
+const CONTRACT_IMPORT: ContractImports[] = [
+ {
+ fsPath: `${__dirname}/../api/CollectionHelpers.sol`,
+ solPath: 'api/CollectionHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/ContractHelpers.sol`,
+ solPath: 'api/ContractHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungibleToken.sol`,
+ solPath: 'api/UniqueRefungibleToken.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungible.sol`,
+ solPath: 'api/UniqueRefungible.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueNFT.sol`,
+ solPath: 'api/UniqueNFT.sol',
+ },
+];
+const main = async () => {
+ await usingEthPlaygrounds(async (helper, privateKey) => {
+ const contract_source = (
+ await readFile(`${__dirname}/EvmToSubstrateHelper.sol`)
+ ).toString();
+
+
+ const donor = await privateKey('//Alice'); // Seed from account with balance on this network
+ const myAccount = await privateKey('//Bob'); // replace with account from polkadot extension
+
+ const signer = await helper.eth.createAccountWithBalance(donor, 100n);
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addAdmin(donor, {Ethereum: signer});
+ await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+
+ console.log('collection admin(s)): ', await collection.getAdmins());
+ console.log('collection owner(s)): ', await collection.getAllowList());
+ const fee = await helper.arrange.calculcateFee({Substrate: donor.address}, () => collection.mintToken(donor, {Substrate: myAccount.address}));
+ console.log(`\ntoken mint from susbtrate : ${fee}`);
+
+ const collectionEthAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+ const collectionContract = helper.ethNativeContract.collection(
+ collectionEthAddress,
+ 'nft',
+ );
+
+ const receiverEthAddress = helper.address.substrateToEth(myAccount.address);
+
+ // let subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ let encodedCall = collectionContract.methods
+ .mint(receiverEthAddress)
+ .encodeABI();
+
+ const ethFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+ await helper.eth.sendEVM(
+ donor,
+ collectionContract.options.address,
+ encodedCall,
+ '0',
+ );
+ },
+ );
+
+ console.log(`token mint from eth : ${ethFee}`);
+
+ const contract = await helper.ethContract.deployByCode(signer, 'EvmToSubstrate', contract_source, CONTRACT_IMPORT);
+ console.log(`contract has been deployed`);
+
+ await helper.eth.transferBalanceFromSubstrate(donor, contract.options.address, 100n);
+
+ console.log(`transfer has been completed`);
+
+ await collection.addToAllowList(donor, { Ethereum: contract.options.address });
+ await collection.addAdmin(donor, {Ethereum: contract.options.address});
+
+ console.log(`setup has been completed`);
+
+ const feeForProxyContractMinting = await helper.arrange.calculcateFee(
+ {Ethereum: signer},
+ async () => {
+ await contract.methods.mintToSubstrate(helper.ethAddress.fromCollectionId(collection.collectionId), myAccount.addressRaw).send({from: signer});
+ },
+ );
+
+ console.log(`token mint from contract to the Substrate Id: ${feeForProxyContractMinting}\n`);
+ // subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ /// *** properties part ***
+
+ console.log('\t\t\t *** Properties Fees ***\n');
+
+ const propertiesNumber = 20;
+
+ const properties = Array(40).fill(0)
+ .map((_, i) => { return {key: `key_${i}`, value: Uint8Array.from(Buffer.from(`value_${i}`))}; });
+
+ const permissions: ITokenPropertyPermission[] = properties
+ .map(p => {
+ return {
+ key: p.key, permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true}}; });
+
+
+ // *** Susbtrate ***
+
+ const collectionForSubstrateBench = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+
+ const mintWithPropSubstrate = await helper.arrange.calculcateFee({Substrate: donor.address}, async () => {
+ await collectionForSubstrateBench
+ .mintToken(donor, {Substrate: myAccount.address}, properties.slice(0, propertiesNumber).map(p => { return {key: p.key, value: Buffer.from(p.value).toString()}; }));
+ });
+ console.log(`token mint from susbtrate: ${mintWithPropSubstrate}`);
+
+ // *** EVM ***
+
+ const collectionForEvmBench = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+ const evmContract = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collectionForEvmBench.collectionId), 'nft');
+
+ let subTokenId = await evmContract.methods.nextTokenId().call();
+
+ encodedCall = evmContract.methods
+ .mint(receiverEthAddress)
+ .encodeABI();
+
+ const evmCallWithPropFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+
+ await helper.eth.sendEVM(
+ donor,
+ evmContract.options.address,
+ encodedCall,
+ '0',
+ );
+
+ for (const val of properties.slice(0, propertiesNumber)) {
+
+ encodedCall = await evmContract.methods
+ .setProperty(subTokenId, val.key, Buffer.from(val.value))
+ .encodeABI();
+
+ await helper.eth.sendEVM(
+ donor,
+ evmContract.options.address,
+ encodedCall,
+ '0',
+ );
+ }
+ },
+ );
+
+ console.log(`token mint from eth : ${evmCallWithPropFee}`);
+
+
+
+ // *** EVM Bulk***
+
+ const collectionForEvmBulkBench = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+ const evmBulkContract = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collectionForEvmBulkBench.collectionId), 'nft');
+
+ subTokenId = await evmBulkContract.methods.nextTokenId().call();
+
+ encodedCall = evmBulkContract.methods
+ .mint(receiverEthAddress)
+ .encodeABI();
+
+ const evmCallWithBulkPropFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+
+ await helper.eth.sendEVM(
+ donor,
+ evmBulkContract.options.address,
+ encodedCall,
+ '0',
+ );
+
+
+
+ encodedCall = await evmBulkContract.methods
+ .setProperties(
+ subTokenId,
+ properties.slice(0, propertiesNumber)
+ .map(p => { return {field_0: p.key, field_1: p.value}; }),
+ )
+ .encodeABI();
+
+ await helper.eth.sendEVM(
+ donor,
+ evmBulkContract.options.address,
+ encodedCall,
+ '0',
+ );
+
+ },
+ );
+
+ console.log(`token mint from eth (Bulk) : ${evmCallWithBulkPropFee}`);
+
+
+ // *** ProxyContract ***
+
+ await collection.setTokenPropertyPermissions(donor, permissions);
+ const mintWithPropProxyContractFee = await helper.arrange.calculcateFee({Ethereum: signer}, async () => {
+ await contract.methods.mintToSubstrateWithProperty(helper.ethAddress
+ .fromCollectionId(collection.collectionId), myAccount.addressRaw, properties.slice(0, propertiesNumber)).send({from: signer});
+ });
+ console.log(`token mint from contract to the Substrate Id: ${mintWithPropProxyContractFee}`);
+
+
+ // // *** ProxyContract Bulk ***
+
+ const collectionForProxyContractBulrProperties = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+ const evmContractProxyBulk = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collectionForProxyContractBulrProperties.collectionId), 'nft');
+
+ const mintWithBulkPropProxyContractFee = await helper.arrange.calculcateFee({Ethereum: signer}, async () => {
+ await contract.methods.mintToSubstrateBulkProperty(evmContractProxyBulk.options.address, myAccount.addressRaw, properties.slice(0, propertiesNumber)
+ .map(p => { return {field_0: p.key, field_1: p.value}; })).send({from: signer});
+ });
+ console.log(`token mint from contract(with bulk prop.) to the Substrate Id: ${mintWithBulkPropProxyContractFee}`);
+
+ console.log('All done');
+ });
+};
+
+main()
+ .then(() => process.exit(0))
+ .catch((e) => {
+ console.log(e);
+ process.exit(1);
+ });
+
+
+async function createCollectionForPropertiesBenchmarks(
+ helper: EthUniqueHelper,
+ privateKey: (seed: string) => Promise<IKeyringPair>,
+ ethSigner: string,
+ proxyContract: string,
+ permissions: ITokenPropertyPermission[],
+) {
+
+ const donor = await privateKey('//Alice'); // Seed from account with balance on this network
+
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addAdmin(donor, {Ethereum: ethSigner});
+ await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Ethereum: proxyContract});
+ await collection.addAdmin(donor, {Ethereum: proxyContract});
+ await collection.setTokenPropertyPermissions(donor, permissions);
+
+ return collection;
+}
\ No newline at end of file
tests/src/eth/evmToSubstrate/prototype.tsdiffbeforeafterboth--- /dev/null
+++ b/tests/src/eth/evmToSubstrate/prototype.ts
@@ -0,0 +1,256 @@
+// import {createEthAccountWithBalance} from '../util/helpers';
+import {EthUniqueHelper, usingEthPlaygrounds} from '../util/playgrounds';
+import {readFile} from 'fs/promises';
+import {ContractImports} from '../util/playgrounds/types';
+import {Contract} from '@polkadot/api-contract/base';
+import Web3 from 'web3';
+import {IProperty, ITokenPropertyPermission} from '../../util/playgrounds/types';
+import {addressToEvm, decodeAddress} from '@polkadot/util-crypto';
+import nonFungibleAbi from '../nonFungibleAbi.json';
+
+import {IKeyringPair} from '@polkadot/types/types';
+
+enum SponsoringMode {
+ Disabled = 0,
+ Allowlisted = 1,
+ Generous = 2,
+}
+
+const WS_ENDPOINT = 'wss://ws-rc.unique.network';
+const CONTRACT_IMPORT: ContractImports[] = [
+ {
+ fsPath: `${__dirname}/../api/CollectionHelpers.sol`,
+ solPath: 'api/CollectionHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/ContractHelpers.sol`,
+ solPath: 'api/ContractHelpers.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungibleToken.sol`,
+ solPath: 'api/UniqueRefungibleToken.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueRefungible.sol`,
+ solPath: 'api/UniqueRefungible.sol',
+ },
+ {
+ fsPath: `${__dirname}/../api/UniqueNFT.sol`,
+ solPath: 'api/UniqueNFT.sol',
+ },
+];
+const main = async () => {
+ await usingEthPlaygrounds(async (helper, privateKey) => {
+ const contractSource = (
+ await readFile(`${__dirname}/EvmToSubstrateHelper.sol`)
+ ).toString();
+
+
+ const donor = privateKey('//Alice'); // Seed from account with balance on this network
+ const myAccount = privateKey('//Bob'); // replace with account from polkadot extension
+ console.log('donor raw sub: ', donor.addressRaw);
+ console.log('donor sub->eth->sub: ', decodeAddress(await helper.address.ethToSubstrate(helper.address.substrateToEth(donor.address))));
+ console.log('donor sub: ', donor.address);
+
+ console.log('donor raw eth: ', Uint8Array.from(Buffer.from(helper.address.substrateToEth(donor.address).slice(2), 'hex')));
+ console.log('donor eth: ', helper.address.substrateToEth(donor.address));
+
+ const signer = await helper.eth.createAccountWithBalance(donor, 100n);
+
+ console.log('\nsigner eth: ', signer);
+ console.log('signer raw eth: ', Uint8Array.from(Buffer.from(signer.slice(2), 'hex')));
+ console.log('signer raw sub: ', decodeAddress(await helper.address.ethToSubstrate(signer)));
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addAdmin(donor, {Ethereum: signer});
+ await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+
+ console.log('collection admin(s)): ', await collection.getAdmins());
+ console.log('collection owner(s)): ', await collection.getAllowList());
+ const fee = await helper.arrange.calculcateFee({Substrate: donor.address}, () => collection.mintToken(donor, {Substrate: myAccount.address}));
+ console.log(`\ncollection mint from susbtrate : ${fee}\n`);
+
+ const collectionEthAddress = helper.ethAddress.fromCollectionId(collection.collectionId);
+ const collectionContract = helper.ethNativeContract.collection(
+ collectionEthAddress,
+ 'nft',
+ );
+ const receiverEthAddress = helper.address.substrateToEth(myAccount.address);
+ console.log('myAccount eth mirror: ', receiverEthAddress);
+ console.log('contract eth mirror: ', collectionEthAddress);
+
+ let subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ let encodedCall = collectionContract.methods
+ .mint(receiverEthAddress, subTokenId)
+ .encodeABI();
+
+ const ethFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+ await helper.eth.sendEVM(
+ donor,
+ collectionContract.options.address,
+ encodedCall,
+ '0',
+ );
+ },
+ );
+
+ console.log(`\ncollection mint from eth : ${ethFee}\n`);
+
+ subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ const contract = await helper.ethContract.deployByCode(signer, 'EvmToSubstrate', contractSource, CONTRACT_IMPORT);
+ console.log('contract Address', contract.options.address);
+ await helper.eth.transferBalanceFromSubstrate(donor, contract.options.address, 100n);
+
+ await collection.addToAllowList(donor, {Ethereum: contract.options.address});
+ await collection.addAdmin(donor, {Ethereum: contract.options.address});
+
+
+ const feeForProxyContractMinting = await helper.arrange.calculcateFee(
+ {Ethereum: signer},
+ async () => {
+ await contract.methods.mintToSubstrate(helper.ethAddress.fromCollectionId(collection.collectionId), myAccount.addressRaw).send({from: signer});
+ },
+ );
+
+ console.log(`\ncollection mint from contract to the Substrate Id: ${feeForProxyContractMinting}\n`);
+ subTokenId = await collectionContract.methods.nextTokenId().call();
+
+ /// *** properties part ***
+
+ console.log('\t\t\t *** Properties Fees ***\n');
+
+ const propertiesNumber = 20;
+
+ const properties = Array(40).fill(0).map((_, i) => { return {key: `key_${i}`, value: Uint8Array.from(Buffer.from(`value_${i}`))}; });
+ const permissions: ITokenPropertyPermission[] = properties.map(p => { return {key: p.key, permission: {tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true}}; });
+
+ await collection.setTokenPropertyPermissions(donor, permissions);
+
+
+ const mintWithPropProxyContractFee = await helper.arrange.calculcateFee({Ethereum: signer}, async () => {
+ await contract.methods.mintToSubstrateWithProperty(helper.ethAddress
+ .fromCollectionId(collection.collectionId), myAccount.addressRaw, properties.slice(0, propertiesNumber)).send({from: signer});
+ });
+ console.log(`collection mint from contract to the Substrate Id: ${mintWithPropProxyContractFee}`);
+
+ const collectionForSubstrateBench = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+
+ const mintWithPropSubstrate = await helper.arrange.calculcateFee({Substrate: donor.address}, async () => {
+ await collectionForSubstrateBench
+ .mintToken(donor, {Substrate: myAccount.address}, properties.slice(0, propertiesNumber).map(p => { return {key: p.key, value: Buffer.from(p.value).toString()}; }));
+ });
+
+ console.log(`collection mint from susbtrate: ${mintWithPropSubstrate}`);
+
+ const collectionForEvmBench = await createCollectionForPropertiesBenchmarks(helper, privateKey, signer, contract.options.address, permissions);
+ const evmContract = helper.ethNativeContract.collection(helper.ethAddress.fromCollectionId(collectionForEvmBench.collectionId), 'nft');
+
+ subTokenId = await evmContract.methods.nextTokenId().call();
+
+ encodedCall = evmContract.methods
+ .mint(receiverEthAddress, subTokenId)
+ .encodeABI();
+
+ const evmCallWithPropFee = await helper.arrange.calculcateFee(
+ {Substrate: donor.address},
+ async () => {
+
+ await helper.eth.sendEVM(
+ donor,
+ evmContract.options.address,
+ encodedCall,
+ '0',
+ );
+
+ for (const val of properties.slice(0, propertiesNumber)) {
+
+ encodedCall = await evmContract.methods
+ .setProperty(subTokenId, val.key, Buffer.from(val.value))
+ .encodeABI();
+
+ await helper.eth.sendEVM(
+ donor,
+ evmContract.options.address,
+ encodedCall,
+ '0',
+ );
+ }
+ },
+ );
+
+ console.log(`collection mint from eth : ${evmCallWithPropFee}`);
+
+ console.log('All done');
+ });
+};
+
+main()
+ .then(() => process.exit(0))
+ .catch((e) => {
+ console.log(e);
+ process.exit(1);
+ });
+
+
+async function createCollectionForPropertiesBenchmarks(
+ helper: EthUniqueHelper,
+ privateKey: (seed: string) => IKeyringPair,
+ ethSigner: string,
+ proxyContract: string,
+ permissions: ITokenPropertyPermission[],
+) {
+
+ const donor = privateKey('//Alice'); // Seed from account with balance on this network
+
+
+ const collection = await helper.nft.mintCollection(donor, {
+ name: 'test mintToSubstrate',
+ description: 'EVMHelpers',
+ tokenPrefix: 'ap',
+ tokenPropertyPermissions: [
+ {
+ key: 'url',
+ permission: {
+ tokenOwner: true,
+ collectionAdmin: true,
+ mutable: true,
+ },
+ },
+ ],
+ limits: {sponsorTransferTimeout: 0, sponsorApproveTimeout: 0}, permissions: {mintMode: true},
+ });
+
+ await collection.addToAllowList(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Substrate: donor.address});
+ await collection.addAdmin(donor, {Ethereum: ethSigner});
+ await collection.addAdmin(donor, {Ethereum: helper.address.substrateToEth(donor.address)});
+ await collection.addToAllowList(donor, {Ethereum: proxyContract});
+ await collection.addAdmin(donor, {Ethereum: proxyContract});
+ await collection.setTokenPropertyPermissions(donor, permissions);
+
+ return collection;
+}
\ No newline at end of file
tests/yarn.lockdiffbeforeafterboth--- a/tests/yarn.lock
+++ b/tests/yarn.lock
@@ -940,6 +940,14 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
+"@typechain/web3-v1@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@typechain/web3-v1/-/web3-v1-6.0.1.tgz#459d1d6901134310fbc1cf9cd263bf529d979572"
+ integrity sha512-w3xehVgsKV74fGBx1d6xuySWZJ/DbLaYWJDqaDy93qojOicDPESESfOL0XIWZfEmhxk+1JEDC9Roqb/eBmldaA==
+ dependencies:
+ lodash "^4.17.15"
+ ts-essentials "^7.0.1"
+
"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682"
@@ -1023,6 +1031,11 @@
dependencies:
"@types/node" "*"
+"@types/prettier@^2.1.1":
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"
+ integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==
+
"@types/responselike@*", "@types/responselike@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
@@ -1211,6 +1224,16 @@
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+array-back@^3.0.1, array-back@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
+ integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
+
+array-back@^4.0.1, array-back@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e"
+ integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==
+
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
@@ -1573,7 +1596,7 @@
pathval "^1.1.1"
type-detect "^4.0.5"
-chalk@^2.0.0:
+chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1709,6 +1732,26 @@
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
+command-line-args@^5.1.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e"
+ integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==
+ dependencies:
+ array-back "^3.1.0"
+ find-replace "^3.0.0"
+ lodash.camelcase "^4.3.0"
+ typical "^4.0.0"
+
+command-line-usage@^6.1.0:
+ version "6.1.3"
+ resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957"
+ integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==
+ dependencies:
+ array-back "^4.0.2"
+ chalk "^2.4.2"
+ table-layout "^1.0.2"
+ typical "^5.2.0"
+
commander@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
@@ -1879,7 +1922,7 @@
dependencies:
ms "2.0.0"
-debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -1917,6 +1960,11 @@
dependencies:
type-detect "^4.0.0"
+deep-extend@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -2508,6 +2556,13 @@
commander "^5.1.0"
debug "^4.1.1"
+find-replace@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
+ integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
+ dependencies:
+ array-back "^3.0.1"
+
find-up@5.0.0, find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
@@ -2607,6 +2662,15 @@
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-minipass@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -2709,6 +2773,18 @@
dependencies:
is-glob "^4.0.3"
+glob@7.1.7:
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glob@7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
@@ -3323,12 +3399,17 @@
dependencies:
p-locate "^5.0.0"
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash@^4.17.21:
+lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -3513,7 +3594,7 @@
dependencies:
mkdirp "*"
-mkdirp@*:
+mkdirp@*, mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -3938,6 +4019,11 @@
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+prettier@^2.3.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
+ integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
@@ -4073,6 +4159,11 @@
dependencies:
picomatch "^2.2.1"
+reduce-flatten@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"
+ integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
+
regenerator-runtime@^0.13.4:
version "0.13.10"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee"
@@ -4399,6 +4490,11 @@
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
+string-format@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b"
+ integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==
+
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -4490,6 +4586,16 @@
tar "^4.0.2"
xhr-request "^1.0.1"
+table-layout@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04"
+ integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==
+ dependencies:
+ array-back "^4.0.1"
+ deep-extend "~0.6.0"
+ typical "^5.2.0"
+ wordwrapjs "^4.0.0"
+
tar@^4.0.2:
version "4.4.19"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
@@ -4638,6 +4744,22 @@
resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
+typechain@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.1.0.tgz#fc4902ce596519cb2ccfd012e4ddf92a9945b569"
+ integrity sha512-5jToLgKTjHdI1VKqs/K8BLYy42Sr3o8bV5ojh4MnR9ExHO83cyyUdw+7+vMJCpKXUiVUvARM4qmHTFuyaCMAZQ==
+ dependencies:
+ "@types/prettier" "^2.1.1"
+ debug "^4.3.1"
+ fs-extra "^7.0.0"
+ glob "7.1.7"
+ js-sha3 "^0.8.0"
+ lodash "^4.17.15"
+ mkdirp "^1.0.4"
+ prettier "^2.3.1"
+ ts-command-line-args "^2.2.0"
+ ts-essentials "^7.0.1"
+
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -4650,6 +4772,16 @@
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"
integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
+typical@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
+ integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
+
+typical@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
+ integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
+
uglify-js@^3.1.4:
version "3.17.3"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.3.tgz#f0feedf019c4510f164099e8d7e72ff2d7304377"
@@ -5067,6 +5199,14 @@
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+wordwrapjs@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f"
+ integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==
+ dependencies:
+ reduce-flatten "^2.0.0"
+ typical "^5.2.0"
+
workerpool@6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"