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.soldiffbeforeafterboth--- a/pallets/unique/src/eth/stubs/CollectionHelpers.sol
+++ b/pallets/unique/src/eth/stubs/CollectionHelpers.sol
@@ -1,133 +0,0 @@
-// SPDX-License-Identifier: OTHER
-// This code is automatically generated
-
-pragma solidity >=0.8.0 <0.9.0;
-
-/// @dev common stubs holder
-contract Dummy {
- uint8 dummy;
- string stub_error = "this contract is implemented in native";
-}
-
-contract ERC165 is Dummy {
- function supportsInterface(bytes4 interfaceID) external view returns (bool) {
- require(false, stub_error);
- interfaceID;
- return true;
- }
-}
-
-/// @dev inlined interface
-contract CollectionHelpersEvents {
- event CollectionCreated(address indexed owner, address indexed collectionId);
- event CollectionDestroyed(address indexed collectionId);
-}
-
-/// @title Contract, which allows users to operate with collections
-/// @dev the ERC-165 identifier for this interface is 0x7dea03b1
-contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {
- /// Create an NFT collection
- /// @param name Name of the collection
- /// @param description Informative description of the collection
- /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications
- /// @return address Address of the newly created collection
- /// @dev EVM selector for this function is: 0x844af658,
- /// or in textual repr: createNFTCollection(string,string,string)
- function createNFTCollection(
- string memory name,
- string memory description,
- string memory tokenPrefix
- ) public payable returns (address) {
- require(false, stub_error);
- name;
- description;
- tokenPrefix;
- dummy = 0;
- return 0x0000000000000000000000000000000000000000;
- }
-
- // /// Create an NFT collection
- // /// @param name Name of the collection
- // /// @param description Informative description of the collection
- // /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications
- // /// @return address Address of the newly created collection
- // /// @dev EVM selector for this function is: 0xe34a6844,
- // /// or in textual repr: createNonfungibleCollection(string,string,string)
- // function createNonfungibleCollection(string memory name, string memory description, string memory tokenPrefix) public payable returns (address) {
- // require(false, stub_error);
- // name;
- // description;
- // tokenPrefix;
- // dummy = 0;
- // return 0x0000000000000000000000000000000000000000;
- // }
-
- /// @dev EVM selector for this function is: 0xab173450,
- /// or in textual repr: createRFTCollection(string,string,string)
- function createRFTCollection(
- string memory name,
- string memory description,
- string memory tokenPrefix
- ) public payable returns (address) {
- require(false, stub_error);
- name;
- description;
- tokenPrefix;
- dummy = 0;
- return 0x0000000000000000000000000000000000000000;
- }
-
- /// @dev EVM selector for this function is: 0x7335b79f,
- /// or in textual repr: createFTCollection(string,uint8,string,string)
- function createFTCollection(
- string memory name,
- uint8 decimals,
- string memory description,
- string memory tokenPrefix
- ) public payable returns (address) {
- require(false, stub_error);
- name;
- decimals;
- description;
- tokenPrefix;
- dummy = 0;
- return 0x0000000000000000000000000000000000000000;
- }
-
- /// @dev EVM selector for this function is: 0x85624258,
- /// or in textual repr: makeCollectionERC721MetadataCompatible(address,string)
- function makeCollectionERC721MetadataCompatible(address collection, string memory baseUri) public {
- require(false, stub_error);
- collection;
- baseUri;
- dummy = 0;
- }
-
- /// @dev EVM selector for this function is: 0x564e321f,
- /// or in textual repr: destroyCollection(address)
- function destroyCollection(address collectionAddress) public {
- require(false, stub_error);
- collectionAddress;
- dummy = 0;
- }
-
- /// Check if a collection exists
- /// @param collectionAddress Address of the collection in question
- /// @return bool Does the collection exist?
- /// @dev EVM selector for this function is: 0xc3de1494,
- /// or in textual repr: isCollectionExist(address)
- function isCollectionExist(address collectionAddress) public view returns (bool) {
- require(false, stub_error);
- collectionAddress;
- dummy;
- return false;
- }
-
- /// @dev EVM selector for this function is: 0xd23a7ab1,
- /// or in textual repr: collectionCreationFee()
- function collectionCreationFee() public view returns (uint256) {
- require(false, stub_error);
- dummy;
- return 0;
- }
-}
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.lockdiffbeforeafterboth1# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.2# yarn lockfile v1345"@ampproject/remapping@^2.1.0":6 version "2.2.0"7 resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"8 integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==9 dependencies:10 "@jridgewell/gen-mapping" "^0.1.0"11 "@jridgewell/trace-mapping" "^0.3.9"1213"@babel/code-frame@^7.18.6":14 version "7.18.6"15 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"16 integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==17 dependencies:18 "@babel/highlight" "^7.18.6"1920"@babel/compat-data@^7.19.3":21 version "7.19.4"22 resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747"23 integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==2425"@babel/core@^7.19.3":26 version "7.19.6"27 resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f"28 integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==29 dependencies:30 "@ampproject/remapping" "^2.1.0"31 "@babel/code-frame" "^7.18.6"32 "@babel/generator" "^7.19.6"33 "@babel/helper-compilation-targets" "^7.19.3"34 "@babel/helper-module-transforms" "^7.19.6"35 "@babel/helpers" "^7.19.4"36 "@babel/parser" "^7.19.6"37 "@babel/template" "^7.18.10"38 "@babel/traverse" "^7.19.6"39 "@babel/types" "^7.19.4"40 convert-source-map "^1.7.0"41 debug "^4.1.0"42 gensync "^1.0.0-beta.2"43 json5 "^2.2.1"44 semver "^6.3.0"4546"@babel/generator@^7.19.6":47 version "7.19.6"48 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d"49 integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==50 dependencies:51 "@babel/types" "^7.19.4"52 "@jridgewell/gen-mapping" "^0.3.2"53 jsesc "^2.5.1"5455"@babel/helper-compilation-targets@^7.19.3":56 version "7.19.3"57 resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca"58 integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==59 dependencies:60 "@babel/compat-data" "^7.19.3"61 "@babel/helper-validator-option" "^7.18.6"62 browserslist "^4.21.3"63 semver "^6.3.0"6465"@babel/helper-environment-visitor@^7.18.9":66 version "7.18.9"67 resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"68 integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==6970"@babel/helper-function-name@^7.19.0":71 version "7.19.0"72 resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"73 integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==74 dependencies:75 "@babel/template" "^7.18.10"76 "@babel/types" "^7.19.0"7778"@babel/helper-hoist-variables@^7.18.6":79 version "7.18.6"80 resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"81 integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==82 dependencies:83 "@babel/types" "^7.18.6"8485"@babel/helper-module-imports@^7.18.6":86 version "7.18.6"87 resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"88 integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==89 dependencies:90 "@babel/types" "^7.18.6"9192"@babel/helper-module-transforms@^7.19.6":93 version "7.19.6"94 resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f"95 integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==96 dependencies:97 "@babel/helper-environment-visitor" "^7.18.9"98 "@babel/helper-module-imports" "^7.18.6"99 "@babel/helper-simple-access" "^7.19.4"100 "@babel/helper-split-export-declaration" "^7.18.6"101 "@babel/helper-validator-identifier" "^7.19.1"102 "@babel/template" "^7.18.10"103 "@babel/traverse" "^7.19.6"104 "@babel/types" "^7.19.4"105106"@babel/helper-simple-access@^7.19.4":107 version "7.19.4"108 resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7"109 integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==110 dependencies:111 "@babel/types" "^7.19.4"112113"@babel/helper-split-export-declaration@^7.18.6":114 version "7.18.6"115 resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"116 integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==117 dependencies:118 "@babel/types" "^7.18.6"119120"@babel/helper-string-parser@^7.19.4":121 version "7.19.4"122 resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"123 integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==124125"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":126 version "7.19.1"127 resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"128 integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==129130"@babel/helper-validator-option@^7.18.6":131 version "7.18.6"132 resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"133 integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==134135"@babel/helpers@^7.19.4":136 version "7.19.4"137 resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5"138 integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==139 dependencies:140 "@babel/template" "^7.18.10"141 "@babel/traverse" "^7.19.4"142 "@babel/types" "^7.19.4"143144"@babel/highlight@^7.18.6":145 version "7.18.6"146 resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"147 integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==148 dependencies:149 "@babel/helper-validator-identifier" "^7.18.6"150 chalk "^2.0.0"151 js-tokens "^4.0.0"152153"@babel/parser@^7.18.10", "@babel/parser@^7.19.6":154 version "7.19.6"155 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8"156 integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==157158"@babel/register@^7.18.9":159 version "7.18.9"160 resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c"161 integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==162 dependencies:163 clone-deep "^4.0.1"164 find-cache-dir "^2.0.0"165 make-dir "^2.1.0"166 pirates "^4.0.5"167 source-map-support "^0.5.16"168169"@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4":170 version "7.19.4"171 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78"172 integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==173 dependencies:174 regenerator-runtime "^0.13.4"175176"@babel/template@^7.18.10":177 version "7.18.10"178 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"179 integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==180 dependencies:181 "@babel/code-frame" "^7.18.6"182 "@babel/parser" "^7.18.10"183 "@babel/types" "^7.18.10"184185"@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6":186 version "7.19.6"187 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc"188 integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==189 dependencies:190 "@babel/code-frame" "^7.18.6"191 "@babel/generator" "^7.19.6"192 "@babel/helper-environment-visitor" "^7.18.9"193 "@babel/helper-function-name" "^7.19.0"194 "@babel/helper-hoist-variables" "^7.18.6"195 "@babel/helper-split-export-declaration" "^7.18.6"196 "@babel/parser" "^7.19.6"197 "@babel/types" "^7.19.4"198 debug "^4.1.0"199 globals "^11.1.0"200201"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.4":202 version "7.19.4"203 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7"204 integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==205 dependencies:206 "@babel/helper-string-parser" "^7.19.4"207 "@babel/helper-validator-identifier" "^7.19.1"208 to-fast-properties "^2.0.0"209210"@cspotcode/source-map-support@^0.8.0":211 version "0.8.1"212 resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"213 integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==214 dependencies:215 "@jridgewell/trace-mapping" "0.3.9"216217"@eslint/eslintrc@^1.3.3":218 version "1.3.3"219 resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95"220 integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==221 dependencies:222 ajv "^6.12.4"223 debug "^4.3.2"224 espree "^9.4.0"225 globals "^13.15.0"226 ignore "^5.2.0"227 import-fresh "^3.2.1"228 js-yaml "^4.1.0"229 minimatch "^3.1.2"230 strip-json-comments "^3.1.1"231232"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4":233 version "2.6.5"234 resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30"235 integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==236 dependencies:237 crc-32 "^1.2.0"238 ethereumjs-util "^7.1.5"239240"@ethereumjs/tx@^3.3.2":241 version "3.5.2"242 resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c"243 integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==244 dependencies:245 "@ethereumjs/common" "^2.6.4"246 ethereumjs-util "^7.1.5"247248"@ethersproject/abi@^5.6.3":249 version "5.7.0"250 resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449"251 integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==252 dependencies:253 "@ethersproject/address" "^5.7.0"254 "@ethersproject/bignumber" "^5.7.0"255 "@ethersproject/bytes" "^5.7.0"256 "@ethersproject/constants" "^5.7.0"257 "@ethersproject/hash" "^5.7.0"258 "@ethersproject/keccak256" "^5.7.0"259 "@ethersproject/logger" "^5.7.0"260 "@ethersproject/properties" "^5.7.0"261 "@ethersproject/strings" "^5.7.0"262263"@ethersproject/abstract-provider@^5.7.0":264 version "5.7.0"265 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef"266 integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==267 dependencies:268 "@ethersproject/bignumber" "^5.7.0"269 "@ethersproject/bytes" "^5.7.0"270 "@ethersproject/logger" "^5.7.0"271 "@ethersproject/networks" "^5.7.0"272 "@ethersproject/properties" "^5.7.0"273 "@ethersproject/transactions" "^5.7.0"274 "@ethersproject/web" "^5.7.0"275276"@ethersproject/abstract-signer@^5.7.0":277 version "5.7.0"278 resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2"279 integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==280 dependencies:281 "@ethersproject/abstract-provider" "^5.7.0"282 "@ethersproject/bignumber" "^5.7.0"283 "@ethersproject/bytes" "^5.7.0"284 "@ethersproject/logger" "^5.7.0"285 "@ethersproject/properties" "^5.7.0"286287"@ethersproject/address@^5.7.0":288 version "5.7.0"289 resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37"290 integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==291 dependencies:292 "@ethersproject/bignumber" "^5.7.0"293 "@ethersproject/bytes" "^5.7.0"294 "@ethersproject/keccak256" "^5.7.0"295 "@ethersproject/logger" "^5.7.0"296 "@ethersproject/rlp" "^5.7.0"297298"@ethersproject/base64@^5.7.0":299 version "5.7.0"300 resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c"301 integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==302 dependencies:303 "@ethersproject/bytes" "^5.7.0"304305"@ethersproject/bignumber@^5.7.0":306 version "5.7.0"307 resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"308 integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==309 dependencies:310 "@ethersproject/bytes" "^5.7.0"311 "@ethersproject/logger" "^5.7.0"312 bn.js "^5.2.1"313314"@ethersproject/bytes@^5.7.0":315 version "5.7.0"316 resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"317 integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==318 dependencies:319 "@ethersproject/logger" "^5.7.0"320321"@ethersproject/constants@^5.7.0":322 version "5.7.0"323 resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"324 integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==325 dependencies:326 "@ethersproject/bignumber" "^5.7.0"327328"@ethersproject/hash@^5.7.0":329 version "5.7.0"330 resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7"331 integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==332 dependencies:333 "@ethersproject/abstract-signer" "^5.7.0"334 "@ethersproject/address" "^5.7.0"335 "@ethersproject/base64" "^5.7.0"336 "@ethersproject/bignumber" "^5.7.0"337 "@ethersproject/bytes" "^5.7.0"338 "@ethersproject/keccak256" "^5.7.0"339 "@ethersproject/logger" "^5.7.0"340 "@ethersproject/properties" "^5.7.0"341 "@ethersproject/strings" "^5.7.0"342343"@ethersproject/keccak256@^5.7.0":344 version "5.7.0"345 resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"346 integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==347 dependencies:348 "@ethersproject/bytes" "^5.7.0"349 js-sha3 "0.8.0"350351"@ethersproject/logger@^5.7.0":352 version "5.7.0"353 resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"354 integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==355356"@ethersproject/networks@^5.7.0":357 version "5.7.1"358 resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6"359 integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==360 dependencies:361 "@ethersproject/logger" "^5.7.0"362363"@ethersproject/properties@^5.7.0":364 version "5.7.0"365 resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30"366 integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==367 dependencies:368 "@ethersproject/logger" "^5.7.0"369370"@ethersproject/rlp@^5.7.0":371 version "5.7.0"372 resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304"373 integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==374 dependencies:375 "@ethersproject/bytes" "^5.7.0"376 "@ethersproject/logger" "^5.7.0"377378"@ethersproject/signing-key@^5.7.0":379 version "5.7.0"380 resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3"381 integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==382 dependencies:383 "@ethersproject/bytes" "^5.7.0"384 "@ethersproject/logger" "^5.7.0"385 "@ethersproject/properties" "^5.7.0"386 bn.js "^5.2.1"387 elliptic "6.5.4"388 hash.js "1.1.7"389390"@ethersproject/strings@^5.7.0":391 version "5.7.0"392 resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2"393 integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==394 dependencies:395 "@ethersproject/bytes" "^5.7.0"396 "@ethersproject/constants" "^5.7.0"397 "@ethersproject/logger" "^5.7.0"398399"@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0":400 version "5.7.0"401 resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b"402 integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==403 dependencies:404 "@ethersproject/address" "^5.7.0"405 "@ethersproject/bignumber" "^5.7.0"406 "@ethersproject/bytes" "^5.7.0"407 "@ethersproject/constants" "^5.7.0"408 "@ethersproject/keccak256" "^5.7.0"409 "@ethersproject/logger" "^5.7.0"410 "@ethersproject/properties" "^5.7.0"411 "@ethersproject/rlp" "^5.7.0"412 "@ethersproject/signing-key" "^5.7.0"413414"@ethersproject/web@^5.7.0":415 version "5.7.1"416 resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae"417 integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==418 dependencies:419 "@ethersproject/base64" "^5.7.0"420 "@ethersproject/bytes" "^5.7.0"421 "@ethersproject/logger" "^5.7.0"422 "@ethersproject/properties" "^5.7.0"423 "@ethersproject/strings" "^5.7.0"424425"@humanwhocodes/config-array@^0.10.5":426 version "0.10.7"427 resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc"428 integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==429 dependencies:430 "@humanwhocodes/object-schema" "^1.2.1"431 debug "^4.1.1"432 minimatch "^3.0.4"433434"@humanwhocodes/module-importer@^1.0.1":435 version "1.0.1"436 resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"437 integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==438439"@humanwhocodes/object-schema@^1.2.1":440 version "1.2.1"441 resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"442 integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==443444"@jridgewell/gen-mapping@^0.1.0":445 version "0.1.1"446 resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"447 integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==448 dependencies:449 "@jridgewell/set-array" "^1.0.0"450 "@jridgewell/sourcemap-codec" "^1.4.10"451452"@jridgewell/gen-mapping@^0.3.2":453 version "0.3.2"454 resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"455 integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==456 dependencies:457 "@jridgewell/set-array" "^1.0.1"458 "@jridgewell/sourcemap-codec" "^1.4.10"459 "@jridgewell/trace-mapping" "^0.3.9"460461"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3":462 version "3.1.0"463 resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"464 integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==465466"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":467 version "1.1.2"468 resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"469 integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==470471"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":472 version "1.4.14"473 resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"474 integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==475476"@jridgewell/trace-mapping@0.3.9":477 version "0.3.9"478 resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"479 integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==480 dependencies:481 "@jridgewell/resolve-uri" "^3.0.3"482 "@jridgewell/sourcemap-codec" "^1.4.10"483484"@jridgewell/trace-mapping@^0.3.9":485 version "0.3.17"486 resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"487 integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==488 dependencies:489 "@jridgewell/resolve-uri" "3.1.0"490 "@jridgewell/sourcemap-codec" "1.4.14"491492"@noble/hashes@1.1.3":493 version "1.1.3"494 resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111"495 integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==496497"@noble/secp256k1@1.7.0":498 version "1.7.0"499 resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1"500 integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==501502"@nodelib/fs.scandir@2.1.5":503 version "2.1.5"504 resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"505 integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==506 dependencies:507 "@nodelib/fs.stat" "2.0.5"508 run-parallel "^1.1.9"509510"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":511 version "2.0.5"512 resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"513 integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==514515"@nodelib/fs.walk@^1.2.3":516 version "1.2.8"517 resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"518 integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==519 dependencies:520 "@nodelib/fs.scandir" "2.1.5"521 fastq "^1.6.0"522523"@polkadot/api-augment@9.5.2":524 version "9.5.2"525 resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-9.5.2.tgz#55168dd112517028fea5f2ab9c54ea627e43ac3a"526 integrity sha512-dH6QMY8Z3zI6CrgSU3eSe6f0KWDb5PYGztg/FXGPrjh7Vjic7syWZ1LD6zaHJAFWDp80BEdEXfqr4lConrCKGg==527 dependencies:528 "@babel/runtime" "^7.19.4"529 "@polkadot/api-base" "9.5.2"530 "@polkadot/rpc-augment" "9.5.2"531 "@polkadot/types" "9.5.2"532 "@polkadot/types-augment" "9.5.2"533 "@polkadot/types-codec" "9.5.2"534 "@polkadot/util" "^10.1.11"535536"@polkadot/api-base@9.5.2":537 version "9.5.2"538 resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-9.5.2.tgz#ac0a6b5546a54bcc753ac55c9f033caa9f8b4e5c"539 integrity sha512-BBsH9SLB1FHgjdiU32cZX1puL3Eh8IjOJHjRsO/5SdttciQhF5g/u/m/mM/55qnlXmffI9s2Jre18G0XtVU9Aw==540 dependencies:541 "@babel/runtime" "^7.19.4"542 "@polkadot/rpc-core" "9.5.2"543 "@polkadot/types" "9.5.2"544 "@polkadot/util" "^10.1.11"545 rxjs "^7.5.7"546547"@polkadot/api-derive@9.5.2":548 version "9.5.2"549 resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-9.5.2.tgz#c0412cfc13fa71f93b315d126b12b5ab38e6438c"550 integrity sha512-kWn12dlqfIES1trNLd3O1i2qa4T97v/co1VMCgVstICwCt3+mGZgpxkMqQqPiWHagKEVeBNoAn+h8eOiQlbujA==551 dependencies:552 "@babel/runtime" "^7.19.4"553 "@polkadot/api" "9.5.2"554 "@polkadot/api-augment" "9.5.2"555 "@polkadot/api-base" "9.5.2"556 "@polkadot/rpc-core" "9.5.2"557 "@polkadot/types" "9.5.2"558 "@polkadot/types-codec" "9.5.2"559 "@polkadot/util" "^10.1.11"560 "@polkadot/util-crypto" "^10.1.11"561 rxjs "^7.5.7"562563"@polkadot/api@9.5.2":564 version "9.5.2"565 resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-9.5.2.tgz#cef83928e47c393fbebf2788bc86841b6ab37a41"566 integrity sha512-iEF/E8vQan3fHmIEl3bX7Yn/1jQLlvSDwPOxiQdj4tIcF36HX6vCbkdhQKRif0CNYES58TA9EKFiCNg81k+kXw==567 dependencies:568 "@babel/runtime" "^7.19.4"569 "@polkadot/api-augment" "9.5.2"570 "@polkadot/api-base" "9.5.2"571 "@polkadot/api-derive" "9.5.2"572 "@polkadot/keyring" "^10.1.11"573 "@polkadot/rpc-augment" "9.5.2"574 "@polkadot/rpc-core" "9.5.2"575 "@polkadot/rpc-provider" "9.5.2"576 "@polkadot/types" "9.5.2"577 "@polkadot/types-augment" "9.5.2"578 "@polkadot/types-codec" "9.5.2"579 "@polkadot/types-create" "9.5.2"580 "@polkadot/types-known" "9.5.2"581 "@polkadot/util" "^10.1.11"582 "@polkadot/util-crypto" "^10.1.11"583 eventemitter3 "^4.0.7"584 rxjs "^7.5.7"585586"@polkadot/keyring@^10.1.11":587 version "10.1.11"588 resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-10.1.11.tgz#a3fed011b0c8826ea2097e04f7189e9be66fbf98"589 integrity sha512-Nv8cZaOA/KbdslDMTklJ58+y+UPpic3+oMQoozuq48Ccjv7WeW2BX47XM/RNE8nYFg6EHa6Whfm4IFaFb8s7ag==590 dependencies:591 "@babel/runtime" "^7.19.4"592 "@polkadot/util" "10.1.11"593 "@polkadot/util-crypto" "10.1.11"594595"@polkadot/networks@10.1.11", "@polkadot/networks@^10.1.11":596 version "10.1.11"597 resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-10.1.11.tgz#96a5d6c80228f4beada9154cca0f60a63198e7f4"598 integrity sha512-4FfOVETXwh6PL6wd6fYJMkRSQKm+xUw3vR5rHqcAnB696FpMFPPErc6asgZ9lYMyzNJRY3yG86HQpFhtCv1nGA==599 dependencies:600 "@babel/runtime" "^7.19.4"601 "@polkadot/util" "10.1.11"602 "@substrate/ss58-registry" "^1.33.0"603604"@polkadot/rpc-augment@9.5.2":605 version "9.5.2"606 resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-9.5.2.tgz#739cc3ed2f86f4318432e38381a2cc780dc64f1e"607 integrity sha512-QAcunC7p/T4xy6e4m0Q1c9tiVYxnm+S9o10tmtx0K4qXzrc/4I2/tsw3nEGi3BzJhvMpFondSQGcJ3gyLwpmVA==608 dependencies:609 "@babel/runtime" "^7.19.4"610 "@polkadot/rpc-core" "9.5.2"611 "@polkadot/types" "9.5.2"612 "@polkadot/types-codec" "9.5.2"613 "@polkadot/util" "^10.1.11"614615"@polkadot/rpc-core@9.5.2":616 version "9.5.2"617 resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-9.5.2.tgz#1a00868038b6c07fe8f58bd0a6cc9519d14001cc"618 integrity sha512-4PbNz0GEp3FXYOnsS7mDHZy9DNVBOl56fq8vs09rLkEkrrvGkHmCvabEEWL7OPbwBzwzsCxdgI+IdkVTUKXPkQ==619 dependencies:620 "@babel/runtime" "^7.19.4"621 "@polkadot/rpc-augment" "9.5.2"622 "@polkadot/rpc-provider" "9.5.2"623 "@polkadot/types" "9.5.2"624 "@polkadot/util" "^10.1.11"625 rxjs "^7.5.7"626627"@polkadot/rpc-provider@9.5.2":628 version "9.5.2"629 resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-9.5.2.tgz#3e38ea4c3639180f12270b6fe8cbcabf728aaf1d"630 integrity sha512-Sn2jfvAsvQcl35o0up8JR/XbDMS/3YVDEN2sFuzXtiD77W2njukItbZT+BolfAW+biAUs3bNomump5k/YLiLKg==631 dependencies:632 "@babel/runtime" "^7.19.4"633 "@polkadot/keyring" "^10.1.11"634 "@polkadot/types" "9.5.2"635 "@polkadot/types-support" "9.5.2"636 "@polkadot/util" "^10.1.11"637 "@polkadot/util-crypto" "^10.1.11"638 "@polkadot/x-fetch" "^10.1.11"639 "@polkadot/x-global" "^10.1.11"640 "@polkadot/x-ws" "^10.1.11"641 "@substrate/connect" "0.7.14"642 eventemitter3 "^4.0.7"643 mock-socket "^9.1.5"644 nock "^13.2.9"645646"@polkadot/typegen@9.5.2":647 version "9.5.2"648 resolved "https://registry.yarnpkg.com/@polkadot/typegen/-/typegen-9.5.2.tgz#b4f3b5eca69c70cc496c8cd3b7804df32282c336"649 integrity sha512-DIiicI3VzbqkfjthvHhLYCaElkaKB/qM+P0mGDmb3+NgttJQsH2Sqy/zsT/mjr07hAB1gXf4dhCmj0QQBiR1og==650 dependencies:651 "@babel/core" "^7.19.3"652 "@babel/register" "^7.18.9"653 "@babel/runtime" "^7.19.4"654 "@polkadot/api" "9.5.2"655 "@polkadot/api-augment" "9.5.2"656 "@polkadot/rpc-augment" "9.5.2"657 "@polkadot/rpc-provider" "9.5.2"658 "@polkadot/types" "9.5.2"659 "@polkadot/types-augment" "9.5.2"660 "@polkadot/types-codec" "9.5.2"661 "@polkadot/types-create" "9.5.2"662 "@polkadot/types-support" "9.5.2"663 "@polkadot/util" "^10.1.11"664 "@polkadot/util-crypto" "^10.1.11"665 "@polkadot/x-ws" "^10.1.11"666 handlebars "^4.7.7"667 websocket "^1.0.34"668 yargs "^17.6.0"669670"@polkadot/types-augment@9.5.2":671 version "9.5.2"672 resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-9.5.2.tgz#d9e77756b0e36455d708f5af8265ef011ddf8d91"673 integrity sha512-LDJdv/84sECwA0R5lK85/orxjoozJe3+2jeLjRiKr8S6qm9XRfz0wLCSF866kpSGBZ4B1dYBUhzjoSu95y2Jug==674 dependencies:675 "@babel/runtime" "^7.19.4"676 "@polkadot/types" "9.5.2"677 "@polkadot/types-codec" "9.5.2"678 "@polkadot/util" "^10.1.11"679680"@polkadot/types-codec@9.5.2":681 version "9.5.2"682 resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-9.5.2.tgz#345c38ccef17651b8cabd159a42810893b5e7e44"683 integrity sha512-FJPjE3ceTGTcadeC8d5C+aSR8SLKuQrXKIBmMNBky+WwzEo0vufRqxFWcPLxAOEeeUPgBXS967tP15+UU4psGA==684 dependencies:685 "@babel/runtime" "^7.19.4"686 "@polkadot/util" "^10.1.11"687 "@polkadot/x-bigint" "^10.1.11"688689"@polkadot/types-create@9.5.2":690 version "9.5.2"691 resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-9.5.2.tgz#a85dcb794ea11e5d528baa34b65e57cfafc905cf"692 integrity sha512-YbplL8K0LqUEHoV3FgZ5B83oVV67KGbLXsWHVVaUZBPsmtXJXrbBfSyJgl/80I2n4lXEBmg3sFAYMbaSTvL05A==693 dependencies:694 "@babel/runtime" "^7.19.4"695 "@polkadot/types-codec" "9.5.2"696 "@polkadot/util" "^10.1.11"697698"@polkadot/types-known@9.5.2":699 version "9.5.2"700 resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-9.5.2.tgz#a71fd08932b1643bbf346321472ed48ab1ade215"701 integrity sha512-iNaGOF6dGiTvy3Ns8Z7WNjYD1SGnZiapDAKPH4brPuJqMpN6/FxYpfPSSOKx+IJEamsdINcaggb87eWyPxH8CA==702 dependencies:703 "@babel/runtime" "^7.19.4"704 "@polkadot/networks" "^10.1.11"705 "@polkadot/types" "9.5.2"706 "@polkadot/types-codec" "9.5.2"707 "@polkadot/types-create" "9.5.2"708 "@polkadot/util" "^10.1.11"709710"@polkadot/types-support@9.5.2":711 version "9.5.2"712 resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-9.5.2.tgz#f2990d19cbd78c24e5b7116466fb1d89f93a8ca7"713 integrity sha512-Zdbl5fvGQjUkyE1r67vhyPEqLUwlZ35GCnkoobY9MgN6gylhSjNue/shpG4uGsEjWVQL7GkFkrPiwtzDArVilg==714 dependencies:715 "@babel/runtime" "^7.19.4"716 "@polkadot/util" "^10.1.11"717718"@polkadot/types@9.5.2":719 version "9.5.2"720 resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-9.5.2.tgz#33ab2caea08f084141a01038adbe53ed69ab7d9c"721 integrity sha512-6C5xzOrMK+fu0JMOlSO+8dPDhpwKPOaKMv3v5BMvBEWtDNKM81/QQoAoYT7DSVXq/V16icSFxPs9IWC+6Qq5ag==722 dependencies:723 "@babel/runtime" "^7.19.4"724 "@polkadot/keyring" "^10.1.11"725 "@polkadot/types-augment" "9.5.2"726 "@polkadot/types-codec" "9.5.2"727 "@polkadot/types-create" "9.5.2"728 "@polkadot/util" "^10.1.11"729 "@polkadot/util-crypto" "^10.1.11"730 rxjs "^7.5.7"731732"@polkadot/util-crypto@10.1.11", "@polkadot/util-crypto@^10.1.11":733 version "10.1.11"734 resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-10.1.11.tgz#e59bdc8e1e2bd98a115e2e2ed45461e68a14a48c"735 integrity sha512-wG63frIMAR5T/HXGM0SFNzZZdk7qDBsfLXfn6PIZiXCCCsdEYPzS5WltB7fkhicYpbePJ7VgdCAddj1l4IcGyg==736 dependencies:737 "@babel/runtime" "^7.19.4"738 "@noble/hashes" "1.1.3"739 "@noble/secp256k1" "1.7.0"740 "@polkadot/networks" "10.1.11"741 "@polkadot/util" "10.1.11"742 "@polkadot/wasm-crypto" "^6.3.1"743 "@polkadot/x-bigint" "10.1.11"744 "@polkadot/x-randomvalues" "10.1.11"745 "@scure/base" "1.1.1"746 ed2curve "^0.3.0"747 tweetnacl "^1.0.3"748749"@polkadot/util@10.1.11", "@polkadot/util@^10.1.11":750 version "10.1.11"751 resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.1.11.tgz#22bcdabbd7a0d266417f6569cc655f516d371a82"752 integrity sha512-6m51lw6g6ilqO/k4BQY7rD0lYM9NCnC4FiM7CEEUc7j8q86qxdcZ88zdNldkhNsTIQnfmCtkK3GRzZW6VYrbUw==753 dependencies:754 "@babel/runtime" "^7.19.4"755 "@polkadot/x-bigint" "10.1.11"756 "@polkadot/x-global" "10.1.11"757 "@polkadot/x-textdecoder" "10.1.11"758 "@polkadot/x-textencoder" "10.1.11"759 "@types/bn.js" "^5.1.1"760 bn.js "^5.2.1"761762"@polkadot/wasm-bridge@6.3.1":763 version "6.3.1"764 resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-6.3.1.tgz#439fa78e80947a7cb695443e1f64b25c30bb1487"765 integrity sha512-1TYkHsb9AEFhU9uZj3biEnN2yKQNzdrwSjiTvfCYnt97pnEkKsZI6cku+YPZQv5w/x9CQa5Yua9e2DVVZSivGA==766 dependencies:767 "@babel/runtime" "^7.18.9"768769"@polkadot/wasm-crypto-asmjs@6.3.1":770 version "6.3.1"771 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.3.1.tgz#e8f469c9cf4a7709c8131a96f857291953f3e30a"772 integrity sha512-zbombRfA5v/mUWQQhgg2YwaxhRmxRIrvskw65x+lruax3b6xPBFDs7yplopiJU3r8h2pTgQvX/DUksvqz2TCRQ==773 dependencies:774 "@babel/runtime" "^7.18.9"775776"@polkadot/wasm-crypto-init@6.3.1":777 version "6.3.1"778 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.3.1.tgz#b590220c53c94b9a54d5dc236d0cbe943db76706"779 integrity sha512-9yaUBcu+snwjJLmPPGl3cyGRQ1afyFGm16qzTM0sgG/ZCfUlK4uk8KWZe+sBUKgoxb2oXY7Y4WklKgQI1YBdfw==780 dependencies:781 "@babel/runtime" "^7.18.9"782 "@polkadot/wasm-bridge" "6.3.1"783 "@polkadot/wasm-crypto-asmjs" "6.3.1"784 "@polkadot/wasm-crypto-wasm" "6.3.1"785786"@polkadot/wasm-crypto-wasm@6.3.1":787 version "6.3.1"788 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.3.1.tgz#67f720e7f9694fef096abe9d60abbac02e032383"789 integrity sha512-idSlzKGVzCfeCMRHsacRvqwojSaTadFxL/Dbls4z1thvfa3U9Ku0d2qVtlwg7Hj+tYWDiuP8Kygs+6bQwfs0XA==790 dependencies:791 "@babel/runtime" "^7.18.9"792 "@polkadot/wasm-util" "6.3.1"793794"@polkadot/wasm-crypto@^6.3.1":795 version "6.3.1"796 resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-6.3.1.tgz#63f5798aca2b2ff0696f190e6862d9781d8f280c"797 integrity sha512-OO8h0qeVkqp4xYZaRVl4iuWOEtq282pNBHDKb6SOJuI2g59eWGcKh4EQU9Me2VP6qzojIqptrkrVt7KQXC68gA==798 dependencies:799 "@babel/runtime" "^7.18.9"800 "@polkadot/wasm-bridge" "6.3.1"801 "@polkadot/wasm-crypto-asmjs" "6.3.1"802 "@polkadot/wasm-crypto-init" "6.3.1"803 "@polkadot/wasm-crypto-wasm" "6.3.1"804 "@polkadot/wasm-util" "6.3.1"805806"@polkadot/wasm-util@6.3.1":807 version "6.3.1"808 resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-6.3.1.tgz#439ebb68a436317af388ed6438b8f879df3afcda"809 integrity sha512-12oAv5J7Yoc9m6jixrSaQCxpOkWOyzHx3DMC8qmLjRiwdBWxqLmImOVRVnFsbaxqSbhBIHRuJphVxWE+GZETDg==810 dependencies:811 "@babel/runtime" "^7.18.9"812813"@polkadot/x-bigint@10.1.11", "@polkadot/x-bigint@^10.1.11":814 version "10.1.11"815 resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.1.11.tgz#7d62ce10cccd55b86a415342db95b9feeb099776"816 integrity sha512-TC4KZ+ni/SJhcf/LIwD49C/kwvACu0nCchETNO+sAfJ7COXZwHDUJXVXmwN5PgkQxwsWsKKuJmzR/Fi1bgMWnQ==817 dependencies:818 "@babel/runtime" "^7.19.4"819 "@polkadot/x-global" "10.1.11"820821"@polkadot/x-fetch@^10.1.11":822 version "10.1.11"823 resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-10.1.11.tgz#8f579bb166096c977acff91a40b3848fb5581900"824 integrity sha512-WtyUr9itVD9BLnxCUloJ1iwrXOY/lnlEShEYKHcSm6MIHtbJolePd3v1+o5mOX+bdDbHXhPZnH8anCCqDNDRqg==825 dependencies:826 "@babel/runtime" "^7.19.4"827 "@polkadot/x-global" "10.1.11"828 "@types/node-fetch" "^2.6.2"829 node-fetch "^3.2.10"830831"@polkadot/x-global@10.1.11", "@polkadot/x-global@^10.1.11":832 version "10.1.11"833 resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.1.11.tgz#37dda3ef1cebfd14c68c69279ae6521957817866"834 integrity sha512-bWz5gdcELy6+xfr27R1GE5MPX4nfVlchzHQH+DR6OBbSi9g/PeycQAvFB6IkTmP+YEbNNtIpxnSP37zoUaG3xw==835 dependencies:836 "@babel/runtime" "^7.19.4"837838"@polkadot/x-randomvalues@10.1.11":839 version "10.1.11"840 resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-10.1.11.tgz#f9e088f8b400770d3e53ba9e0c0f0d464047f89e"841 integrity sha512-V2V37f5hoM5B32eCpGw87Lwstin2+ArXhOZ8ENKncbQLXzbF9yTODueDoA5Vt0MJCs2CDP9cyiCYykcanqVkxg==842 dependencies:843 "@babel/runtime" "^7.19.4"844 "@polkadot/x-global" "10.1.11"845846"@polkadot/x-textdecoder@10.1.11":847 version "10.1.11"848 resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.1.11.tgz#314c79e27545a41fe0494a26196bf2dff5cfcb5d"849 integrity sha512-QZqie04SR6pAj260PaLBfZUGXWKI357t4ROVJhpaj06qc1zrk1V8Mwkr49+WzjAPFEOqo70HWnzXmPNCH4dQiw==850 dependencies:851 "@babel/runtime" "^7.19.4"852 "@polkadot/x-global" "10.1.11"853854"@polkadot/x-textencoder@10.1.11":855 version "10.1.11"856 resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.1.11.tgz#23b18b3ffbc649572728aa37d7787432bb3a03b5"857 integrity sha512-UX+uV9AbDID81waaG/NvTkkf7ZNVW7HSHaddgbWjQEVW2Ex4ByccBarY5jEi6cErEPKfzCamKhgXflu0aV9LWw==858 dependencies:859 "@babel/runtime" "^7.19.4"860 "@polkadot/x-global" "10.1.11"861862"@polkadot/x-ws@^10.1.11":863 version "10.1.11"864 resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-10.1.11.tgz#7431ad72064d56519d4293278f03ae97b9ea9271"865 integrity sha512-EUbL/R1A/NxYf6Rnb1M7U9yeTuo5r4y2vcQllE5aBLaQ0cFnRykHzlmZlVX1E7O5uy3lYVdxWC7sNgxItIWkWA==866 dependencies:867 "@babel/runtime" "^7.19.4"868 "@polkadot/x-global" "10.1.11"869 "@types/websocket" "^1.0.5"870 websocket "^1.0.34"871872"@scure/base@1.1.1":873 version "1.1.1"874 resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938"875 integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==876877"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0":878 version "4.6.0"879 resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"880 integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==881882"@substrate/connect-extension-protocol@^1.0.1":883 version "1.0.1"884 resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d"885 integrity sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==886887"@substrate/connect@0.7.14":888 version "0.7.14"889 resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.14.tgz#c090e952e9cdd93185a94d24fbc424ea20fe7bbe"890 integrity sha512-uW5uBmihpivshmmmw+rsg7qOV0KqVSep4rWOXFMP8aFQinvmqw4JqxP21og4H/7JZxttYUBFQVsdtXHGKJ0aVQ==891 dependencies:892 "@substrate/connect-extension-protocol" "^1.0.1"893 "@substrate/smoldot-light" "0.6.34"894 eventemitter3 "^4.0.7"895896"@substrate/smoldot-light@0.6.34":897 version "0.6.34"898 resolved "https://registry.yarnpkg.com/@substrate/smoldot-light/-/smoldot-light-0.6.34.tgz#273dba622102281fd0fdb0e375198bff2ec584c3"899 integrity sha512-+HK9MaJ0HelJmpf4YYR+salJ7dhVBltmhGlyz5l8OXS9DW18fe0Z2wxEo8P5kX9CUxlCXEb8J9JBRQAYBPHbwQ==900 dependencies:901 pako "^2.0.4"902 ws "^8.8.1"903904"@substrate/ss58-registry@^1.33.0":905 version "1.33.0"906 resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.33.0.tgz#b93218fc86405769716b02f0ce5e61df221b37ae"907 integrity sha512-DztMuMcEfu+tJrtIQIIp5gO8/XJZ8N8UwPObDCSNgrp7trtSkPJAUFB9qXaReXtN9UvTcVBMTWk6VPfFi04Wkg==908909"@szmarczak/http-timer@^4.0.5":910 version "4.0.6"911 resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"912 integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==913 dependencies:914 defer-to-connect "^2.0.0"915916"@szmarczak/http-timer@^5.0.1":917 version "5.0.1"918 resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a"919 integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==920 dependencies:921 defer-to-connect "^2.0.1"922923"@tsconfig/node10@^1.0.7":924 version "1.0.9"925 resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"926 integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==927928"@tsconfig/node12@^1.0.7":929 version "1.0.11"930 resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"931 integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==932933"@tsconfig/node14@^1.0.0":934 version "1.0.3"935 resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"936 integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==937938"@tsconfig/node16@^1.0.2":939 version "1.0.3"940 resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"941 integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==942943"@typechain/web3-v1@^6.0.1":944 version "6.0.1"945 resolved "https://registry.yarnpkg.com/@typechain/web3-v1/-/web3-v1-6.0.1.tgz#459d1d6901134310fbc1cf9cd263bf529d979572"946 integrity sha512-w3xehVgsKV74fGBx1d6xuySWZJ/DbLaYWJDqaDy93qojOicDPESESfOL0XIWZfEmhxk+1JEDC9Roqb/eBmldaA==947 dependencies:948 lodash "^4.17.15"949 ts-essentials "^7.0.1"950951"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1":952 version "5.1.1"953 resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682"954 integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==955 dependencies:956 "@types/node" "*"957958"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2":959 version "6.0.2"960 resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9"961 integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==962 dependencies:963 "@types/http-cache-semantics" "*"964 "@types/keyv" "*"965 "@types/node" "*"966 "@types/responselike" "*"967968"@types/chai-as-promised@^7.1.5":969 version "7.1.5"970 resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz#6e016811f6c7a64f2eed823191c3a6955094e255"971 integrity sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==972 dependencies:973 "@types/chai" "*"974975"@types/chai-like@^1.1.1":976 version "1.1.1"977 resolved "https://registry.yarnpkg.com/@types/chai-like/-/chai-like-1.1.1.tgz#c454039b0a2f92664fb5b7b7a2a66c3358783ae7"978 integrity sha512-s46EZsupBuVhLn66DbRee5B0SELLmL4nFXVrBiV29BxLGm9Sh7Bful623j3AfiQRu2zAP4cnlZ3ETWB3eWc4bA==979 dependencies:980 "@types/chai" "*"981982"@types/chai@*", "@types/chai@^4.3.3":983 version "4.3.3"984 resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07"985 integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==986987"@types/http-cache-semantics@*":988 version "4.0.1"989 resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"990 integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==991992"@types/json-schema@^7.0.9":993 version "7.0.11"994 resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"995 integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==996997"@types/keyv@*":998 version "4.2.0"999 resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-4.2.0.tgz#65b97868ab757906f2dbb653590d7167ad023fa0"1000 integrity sha512-xoBtGl5R9jeKUhc8ZqeYaRDx04qqJ10yhhXYGmJ4Jr8qKpvMsDQQrNUvF/wUJ4klOtmJeJM+p2Xo3zp9uaC3tw==1001 dependencies:1002 keyv "*"10031004"@types/mocha@^10.0.0":1005 version "10.0.0"1006 resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.0.tgz#3d9018c575f0e3f7386c1de80ee66cc21fbb7a52"1007 integrity sha512-rADY+HtTOA52l9VZWtgQfn4p+UDVM2eDVkMZT1I6syp0YKxW2F9v+0pbRZLsvskhQv/vMb6ZfCay81GHbz5SHg==10081009"@types/node-fetch@^2.6.2":1010 version "2.6.2"1011 resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da"1012 integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==1013 dependencies:1014 "@types/node" "*"1015 form-data "^3.0.0"10161017"@types/node@*", "@types/node@^18.11.2":1018 version "18.11.2"1019 resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8"1020 integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==10211022"@types/node@^12.12.6":1023 version "12.20.55"1024 resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"1025 integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==10261027"@types/pbkdf2@^3.0.0":1028 version "3.1.0"1029 resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1"1030 integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==1031 dependencies:1032 "@types/node" "*"10331034"@types/prettier@^2.1.1":1035 version "2.7.0"1036 resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"1037 integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==10381039"@types/responselike@*", "@types/responselike@^1.0.0":1040 version "1.0.0"1041 resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"1042 integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==1043 dependencies:1044 "@types/node" "*"10451046"@types/secp256k1@^4.0.1":1047 version "4.0.3"1048 resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c"1049 integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==1050 dependencies:1051 "@types/node" "*"10521053"@types/semver@^7.3.12":1054 version "7.3.12"1055 resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c"1056 integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==10571058"@types/websocket@^1.0.5":1059 version "1.0.5"1060 resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.5.tgz#3fb80ed8e07f88e51961211cd3682a3a4a81569c"1061 integrity sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==1062 dependencies:1063 "@types/node" "*"10641065"@typescript-eslint/eslint-plugin@^5.40.1":1066 version "5.40.1"1067 resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz#3203a6ff396b1194083faaa6e5110c401201d7d5"1068 integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg==1069 dependencies:1070 "@typescript-eslint/scope-manager" "5.40.1"1071 "@typescript-eslint/type-utils" "5.40.1"1072 "@typescript-eslint/utils" "5.40.1"1073 debug "^4.3.4"1074 ignore "^5.2.0"1075 regexpp "^3.2.0"1076 semver "^7.3.7"1077 tsutils "^3.21.0"10781079"@typescript-eslint/parser@^5.40.1":1080 version "5.40.1"1081 resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.40.1.tgz#e7f8295dd8154d0d37d661ddd8e2f0ecfdee28dd"1082 integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==1083 dependencies:1084 "@typescript-eslint/scope-manager" "5.40.1"1085 "@typescript-eslint/types" "5.40.1"1086 "@typescript-eslint/typescript-estree" "5.40.1"1087 debug "^4.3.4"10881089"@typescript-eslint/scope-manager@5.40.1":1090 version "5.40.1"1091 resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz#a7a5197dfd234622a2421ea590ee0ccc02e18dfe"1092 integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==1093 dependencies:1094 "@typescript-eslint/types" "5.40.1"1095 "@typescript-eslint/visitor-keys" "5.40.1"10961097"@typescript-eslint/type-utils@5.40.1":1098 version "5.40.1"1099 resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz#091e4ce3bebbdb68f4980bae9dee2e4e1725f601"1100 integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q==1101 dependencies:1102 "@typescript-eslint/typescript-estree" "5.40.1"1103 "@typescript-eslint/utils" "5.40.1"1104 debug "^4.3.4"1105 tsutils "^3.21.0"11061107"@typescript-eslint/types@5.40.1":1108 version "5.40.1"1109 resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.40.1.tgz#de37f4f64de731ee454bb2085d71030aa832f749"1110 integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==11111112"@typescript-eslint/typescript-estree@5.40.1":1113 version "5.40.1"1114 resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz#9a7d25492f02c69882ce5e0cd1857b0c55645d72"1115 integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==1116 dependencies:1117 "@typescript-eslint/types" "5.40.1"1118 "@typescript-eslint/visitor-keys" "5.40.1"1119 debug "^4.3.4"1120 globby "^11.1.0"1121 is-glob "^4.0.3"1122 semver "^7.3.7"1123 tsutils "^3.21.0"11241125"@typescript-eslint/utils@5.40.1":1126 version "5.40.1"1127 resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.40.1.tgz#3204fb73a559d3b7bab7dc9d3c44487c2734a9ca"1128 integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==1129 dependencies:1130 "@types/json-schema" "^7.0.9"1131 "@types/semver" "^7.3.12"1132 "@typescript-eslint/scope-manager" "5.40.1"1133 "@typescript-eslint/types" "5.40.1"1134 "@typescript-eslint/typescript-estree" "5.40.1"1135 eslint-scope "^5.1.1"1136 eslint-utils "^3.0.0"1137 semver "^7.3.7"11381139"@typescript-eslint/visitor-keys@5.40.1":1140 version "5.40.1"1141 resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz#f3d2bf5af192f4432b84cec6fdcb387193518754"1142 integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==1143 dependencies:1144 "@typescript-eslint/types" "5.40.1"1145 eslint-visitor-keys "^3.3.0"11461147abortcontroller-polyfill@^1.7.3:1148 version "1.7.5"1149 resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed"1150 integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==11511152accepts@~1.3.8:1153 version "1.3.8"1154 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"1155 integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==1156 dependencies:1157 mime-types "~2.1.34"1158 negotiator "0.6.3"11591160acorn-jsx@^5.3.2:1161 version "5.3.2"1162 resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"1163 integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==11641165acorn-walk@^8.1.1:1166 version "8.2.0"1167 resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"1168 integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==11691170acorn@^8.4.1, acorn@^8.8.0:1171 version "8.8.0"1172 resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"1173 integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==11741175ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:1176 version "6.12.6"1177 resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"1178 integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==1179 dependencies:1180 fast-deep-equal "^3.1.1"1181 fast-json-stable-stringify "^2.0.0"1182 json-schema-traverse "^0.4.1"1183 uri-js "^4.2.2"11841185ansi-colors@4.1.1:1186 version "4.1.1"1187 resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"1188 integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==11891190ansi-regex@^5.0.1:1191 version "5.0.1"1192 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"1193 integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==11941195ansi-styles@^3.2.1:1196 version "3.2.1"1197 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"1198 integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==1199 dependencies:1200 color-convert "^1.9.0"12011202ansi-styles@^4.0.0, ansi-styles@^4.1.0:1203 version "4.3.0"1204 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"1205 integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==1206 dependencies:1207 color-convert "^2.0.1"12081209anymatch@~3.1.2:1210 version "3.1.2"1211 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"1212 integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==1213 dependencies:1214 normalize-path "^3.0.0"1215 picomatch "^2.0.4"12161217arg@^4.1.0:1218 version "4.1.3"1219 resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"1220 integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==12211222argparse@^2.0.1:1223 version "2.0.1"1224 resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"1225 integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==12261227array-back@^3.0.1, array-back@^3.1.0:1228 version "3.1.0"1229 resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"1230 integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==12311232array-back@^4.0.1, array-back@^4.0.2:1233 version "4.0.2"1234 resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e"1235 integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==12361237array-flatten@1.1.1:1238 version "1.1.1"1239 resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"1240 integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==12411242array-union@^2.1.0:1243 version "2.1.0"1244 resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"1245 integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==12461247asn1.js@^5.2.0:1248 version "5.4.1"1249 resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"1250 integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==1251 dependencies:1252 bn.js "^4.0.0"1253 inherits "^2.0.1"1254 minimalistic-assert "^1.0.0"1255 safer-buffer "^2.1.0"12561257asn1@~0.2.3:1258 version "0.2.6"1259 resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"1260 integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==1261 dependencies:1262 safer-buffer "~2.1.0"12631264assert-plus@1.0.0, assert-plus@^1.0.0:1265 version "1.0.0"1266 resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"1267 integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==12681269assertion-error@^1.1.0:1270 version "1.1.0"1271 resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"1272 integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==12731274async-limiter@~1.0.0:1275 version "1.0.1"1276 resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"1277 integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==12781279asynckit@^0.4.0:1280 version "0.4.0"1281 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"1282 integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==12831284available-typed-arrays@^1.0.5:1285 version "1.0.5"1286 resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"1287 integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==12881289aws-sign2@~0.7.0:1290 version "0.7.0"1291 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"1292 integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==12931294aws4@^1.8.0:1295 version "1.11.0"1296 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"1297 integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==12981299balanced-match@^1.0.0:1300 version "1.0.2"1301 resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"1302 integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==13031304base-x@^3.0.2, base-x@^3.0.8:1305 version "3.0.9"1306 resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"1307 integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==1308 dependencies:1309 safe-buffer "^5.0.1"13101311base64-js@^1.3.1:1312 version "1.5.1"1313 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"1314 integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==13151316bcrypt-pbkdf@^1.0.0:1317 version "1.0.2"1318 resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"1319 integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==1320 dependencies:1321 tweetnacl "^0.14.3"13221323bignumber.js@^9.0.0:1324 version "9.1.0"1325 resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62"1326 integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==13271328binary-extensions@^2.0.0:1329 version "2.2.0"1330 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"1331 integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==13321333blakejs@^1.1.0:1334 version "1.2.1"1335 resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814"1336 integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==13371338bluebird@^3.5.0:1339 version "3.7.2"1340 resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"1341 integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==13421343bn.js@4.11.6:1344 version "4.11.6"1345 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"1346 integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==13471348bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9:1349 version "4.12.0"1350 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"1351 integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==13521353bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1:1354 version "5.2.1"1355 resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"1356 integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==13571358body-parser@1.20.1, body-parser@^1.16.0:1359 version "1.20.1"1360 resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"1361 integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==1362 dependencies:1363 bytes "3.1.2"1364 content-type "~1.0.4"1365 debug "2.6.9"1366 depd "2.0.0"1367 destroy "1.2.0"1368 http-errors "2.0.0"1369 iconv-lite "0.4.24"1370 on-finished "2.4.1"1371 qs "6.11.0"1372 raw-body "2.5.1"1373 type-is "~1.6.18"1374 unpipe "1.0.0"13751376brace-expansion@^1.1.7:1377 version "1.1.11"1378 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"1379 integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==1380 dependencies:1381 balanced-match "^1.0.0"1382 concat-map "0.0.1"13831384brace-expansion@^2.0.1:1385 version "2.0.1"1386 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"1387 integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==1388 dependencies:1389 balanced-match "^1.0.0"13901391braces@^3.0.2, braces@~3.0.2:1392 version "3.0.2"1393 resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"1394 integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==1395 dependencies:1396 fill-range "^7.0.1"13971398brorand@^1.0.1, brorand@^1.1.0:1399 version "1.1.0"1400 resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"1401 integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==14021403browser-stdout@1.3.1:1404 version "1.3.1"1405 resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"1406 integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==14071408browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0:1409 version "1.2.0"1410 resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"1411 integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==1412 dependencies:1413 buffer-xor "^1.0.3"1414 cipher-base "^1.0.0"1415 create-hash "^1.1.0"1416 evp_bytestokey "^1.0.3"1417 inherits "^2.0.1"1418 safe-buffer "^5.0.1"14191420browserify-cipher@^1.0.0:1421 version "1.0.1"1422 resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"1423 integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==1424 dependencies:1425 browserify-aes "^1.0.4"1426 browserify-des "^1.0.0"1427 evp_bytestokey "^1.0.0"14281429browserify-des@^1.0.0:1430 version "1.0.2"1431 resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"1432 integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==1433 dependencies:1434 cipher-base "^1.0.1"1435 des.js "^1.0.0"1436 inherits "^2.0.1"1437 safe-buffer "^5.1.2"14381439browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:1440 version "4.1.0"1441 resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"1442 integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==1443 dependencies:1444 bn.js "^5.0.0"1445 randombytes "^2.0.1"14461447browserify-sign@^4.0.0:1448 version "4.2.1"1449 resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"1450 integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==1451 dependencies:1452 bn.js "^5.1.1"1453 browserify-rsa "^4.0.1"1454 create-hash "^1.2.0"1455 create-hmac "^1.1.7"1456 elliptic "^6.5.3"1457 inherits "^2.0.4"1458 parse-asn1 "^5.1.5"1459 readable-stream "^3.6.0"1460 safe-buffer "^5.2.0"14611462browserslist@^4.21.3:1463 version "4.21.4"1464 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"1465 integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==1466 dependencies:1467 caniuse-lite "^1.0.30001400"1468 electron-to-chromium "^1.4.251"1469 node-releases "^2.0.6"1470 update-browserslist-db "^1.0.9"14711472bs58@^4.0.0:1473 version "4.0.1"1474 resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"1475 integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==1476 dependencies:1477 base-x "^3.0.2"14781479bs58check@^2.1.2:1480 version "2.1.2"1481 resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"1482 integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==1483 dependencies:1484 bs58 "^4.0.0"1485 create-hash "^1.1.0"1486 safe-buffer "^5.1.2"14871488buffer-from@^1.0.0:1489 version "1.1.2"1490 resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"1491 integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==14921493buffer-to-arraybuffer@^0.0.5:1494 version "0.0.5"1495 resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a"1496 integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==14971498buffer-xor@^1.0.3:1499 version "1.0.3"1500 resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"1501 integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==15021503buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0:1504 version "5.7.1"1505 resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"1506 integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==1507 dependencies:1508 base64-js "^1.3.1"1509 ieee754 "^1.1.13"15101511bufferutil@^4.0.1:1512 version "4.0.7"1513 resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad"1514 integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==1515 dependencies:1516 node-gyp-build "^4.3.0"15171518bytes@3.1.2:1519 version "3.1.2"1520 resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"1521 integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==15221523cacheable-lookup@^5.0.3:1524 version "5.0.4"1525 resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"1526 integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==15271528cacheable-lookup@^6.0.4:1529 version "6.1.0"1530 resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385"1531 integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==15321533cacheable-request@^7.0.2:1534 version "7.0.2"1535 resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27"1536 integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==1537 dependencies:1538 clone-response "^1.0.2"1539 get-stream "^5.1.0"1540 http-cache-semantics "^4.0.0"1541 keyv "^4.0.0"1542 lowercase-keys "^2.0.0"1543 normalize-url "^6.0.1"1544 responselike "^2.0.0"15451546call-bind@^1.0.0, call-bind@^1.0.2:1547 version "1.0.2"1548 resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"1549 integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==1550 dependencies:1551 function-bind "^1.1.1"1552 get-intrinsic "^1.0.2"15531554callsites@^3.0.0:1555 version "3.1.0"1556 resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"1557 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==15581559camelcase@^6.0.0:1560 version "6.3.0"1561 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"1562 integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==15631564caniuse-lite@^1.0.30001400:1565 version "1.0.30001422"1566 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1"1567 integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==15681569caseless@~0.12.0:1570 version "0.12.0"1571 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"1572 integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==15731574chai-as-promised@^7.1.1:1575 version "7.1.1"1576 resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0"1577 integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==1578 dependencies:1579 check-error "^1.0.2"15801581chai-like@^1.1.1:1582 version "1.1.1"1583 resolved "https://registry.yarnpkg.com/chai-like/-/chai-like-1.1.1.tgz#8c558a414c34514e814d497c772547ceb7958f64"1584 integrity sha512-VKa9z/SnhXhkT1zIjtPACFWSoWsqVoaz1Vg+ecrKo5DCKVlgL30F/pEyEvXPBOVwCgLZcWUleCM/C1okaKdTTA==15851586chai@^4.3.6:1587 version "4.3.6"1588 resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"1589 integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==1590 dependencies:1591 assertion-error "^1.1.0"1592 check-error "^1.0.2"1593 deep-eql "^3.0.1"1594 get-func-name "^2.0.0"1595 loupe "^2.3.1"1596 pathval "^1.1.1"1597 type-detect "^4.0.5"15981599chalk@^2.0.0, chalk@^2.4.2:1600 version "2.4.2"1601 resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"1602 integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==1603 dependencies:1604 ansi-styles "^3.2.1"1605 escape-string-regexp "^1.0.5"1606 supports-color "^5.3.0"16071608chalk@^4.0.0, chalk@^4.1.0:1609 version "4.1.2"1610 resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"1611 integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==1612 dependencies:1613 ansi-styles "^4.1.0"1614 supports-color "^7.1.0"16151616check-error@^1.0.2:1617 version "1.0.2"1618 resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"1619 integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==16201621chokidar@3.5.3:1622 version "3.5.3"1623 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"1624 integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==1625 dependencies:1626 anymatch "~3.1.2"1627 braces "~3.0.2"1628 glob-parent "~5.1.2"1629 is-binary-path "~2.1.0"1630 is-glob "~4.0.1"1631 normalize-path "~3.0.0"1632 readdirp "~3.6.0"1633 optionalDependencies:1634 fsevents "~2.3.2"16351636chownr@^1.1.4:1637 version "1.1.4"1638 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"1639 integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==16401641cids@^0.7.1:1642 version "0.7.5"1643 resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2"1644 integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==1645 dependencies:1646 buffer "^5.5.0"1647 class-is "^1.1.0"1648 multibase "~0.6.0"1649 multicodec "^1.0.0"1650 multihashes "~0.4.15"16511652cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:1653 version "1.0.4"1654 resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"1655 integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==1656 dependencies:1657 inherits "^2.0.1"1658 safe-buffer "^5.0.1"16591660class-is@^1.1.0:1661 version "1.1.0"1662 resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825"1663 integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==16641665cliui@^7.0.2:1666 version "7.0.4"1667 resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"1668 integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==1669 dependencies:1670 string-width "^4.2.0"1671 strip-ansi "^6.0.0"1672 wrap-ansi "^7.0.0"16731674cliui@^8.0.1:1675 version "8.0.1"1676 resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"1677 integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==1678 dependencies:1679 string-width "^4.2.0"1680 strip-ansi "^6.0.1"1681 wrap-ansi "^7.0.0"16821683clone-deep@^4.0.1:1684 version "4.0.1"1685 resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"1686 integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==1687 dependencies:1688 is-plain-object "^2.0.4"1689 kind-of "^6.0.2"1690 shallow-clone "^3.0.0"16911692clone-response@^1.0.2:1693 version "1.0.3"1694 resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"1695 integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==1696 dependencies:1697 mimic-response "^1.0.0"16981699color-convert@^1.9.0:1700 version "1.9.3"1701 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"1702 integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==1703 dependencies:1704 color-name "1.1.3"17051706color-convert@^2.0.1:1707 version "2.0.1"1708 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"1709 integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==1710 dependencies:1711 color-name "~1.1.4"17121713color-name@1.1.3:1714 version "1.1.3"1715 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"1716 integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==17171718color-name@~1.1.4:1719 version "1.1.4"1720 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"1721 integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==17221723combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:1724 version "1.0.8"1725 resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"1726 integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==1727 dependencies:1728 delayed-stream "~1.0.0"17291730command-exists@^1.2.8:1731 version "1.2.9"1732 resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"1733 integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==17341735command-line-args@^5.1.1:1736 version "5.2.1"1737 resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e"1738 integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==1739 dependencies:1740 array-back "^3.1.0"1741 find-replace "^3.0.0"1742 lodash.camelcase "^4.3.0"1743 typical "^4.0.0"17441745command-line-usage@^6.1.0:1746 version "6.1.3"1747 resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957"1748 integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==1749 dependencies:1750 array-back "^4.0.2"1751 chalk "^2.4.2"1752 table-layout "^1.0.2"1753 typical "^5.2.0"17541755commander@^5.1.0:1756 version "5.1.0"1757 resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"1758 integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==17591760commander@^8.1.0:1761 version "8.3.0"1762 resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"1763 integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==17641765commondir@^1.0.1:1766 version "1.0.1"1767 resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"1768 integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==17691770concat-map@0.0.1:1771 version "0.0.1"1772 resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"1773 integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==17741775content-disposition@0.5.4:1776 version "0.5.4"1777 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"1778 integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==1779 dependencies:1780 safe-buffer "5.2.1"17811782content-hash@^2.5.2:1783 version "2.5.2"1784 resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211"1785 integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==1786 dependencies:1787 cids "^0.7.1"1788 multicodec "^0.5.5"1789 multihashes "^0.4.15"17901791content-type@~1.0.4:1792 version "1.0.4"1793 resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"1794 integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==17951796convert-source-map@^1.7.0:1797 version "1.9.0"1798 resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"1799 integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==18001801cookie-signature@1.0.6:1802 version "1.0.6"1803 resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"1804 integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==18051806cookie@0.5.0:1807 version "0.5.0"1808 resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"1809 integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==18101811core-util-is@1.0.2:1812 version "1.0.2"1813 resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"1814 integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==18151816cors@^2.8.1:1817 version "2.8.5"1818 resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"1819 integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==1820 dependencies:1821 object-assign "^4"1822 vary "^1"18231824crc-32@^1.2.0:1825 version "1.2.2"1826 resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"1827 integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==18281829create-ecdh@^4.0.0:1830 version "4.0.4"1831 resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"1832 integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==1833 dependencies:1834 bn.js "^4.1.0"1835 elliptic "^6.5.3"18361837create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:1838 version "1.2.0"1839 resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"1840 integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==1841 dependencies:1842 cipher-base "^1.0.1"1843 inherits "^2.0.1"1844 md5.js "^1.3.4"1845 ripemd160 "^2.0.1"1846 sha.js "^2.4.0"18471848create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:1849 version "1.1.7"1850 resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"1851 integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==1852 dependencies:1853 cipher-base "^1.0.3"1854 create-hash "^1.1.0"1855 inherits "^2.0.1"1856 ripemd160 "^2.0.0"1857 safe-buffer "^5.0.1"1858 sha.js "^2.4.8"18591860create-require@^1.1.0:1861 version "1.1.1"1862 resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"1863 integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==18641865cross-fetch@^3.1.4:1866 version "3.1.5"1867 resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"1868 integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==1869 dependencies:1870 node-fetch "2.6.7"18711872cross-spawn@^7.0.2:1873 version "7.0.3"1874 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"1875 integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==1876 dependencies:1877 path-key "^3.1.0"1878 shebang-command "^2.0.0"1879 which "^2.0.1"18801881crypto-browserify@3.12.0:1882 version "3.12.0"1883 resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"1884 integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==1885 dependencies:1886 browserify-cipher "^1.0.0"1887 browserify-sign "^4.0.0"1888 create-ecdh "^4.0.0"1889 create-hash "^1.1.0"1890 create-hmac "^1.1.0"1891 diffie-hellman "^5.0.0"1892 inherits "^2.0.1"1893 pbkdf2 "^3.0.3"1894 public-encrypt "^4.0.0"1895 randombytes "^2.0.0"1896 randomfill "^1.0.3"18971898d@1, d@^1.0.1:1899 version "1.0.1"1900 resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"1901 integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==1902 dependencies:1903 es5-ext "^0.10.50"1904 type "^1.0.1"19051906dashdash@^1.12.0:1907 version "1.14.1"1908 resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"1909 integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==1910 dependencies:1911 assert-plus "^1.0.0"19121913data-uri-to-buffer@^4.0.0:1914 version "4.0.0"1915 resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b"1916 integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==19171918debug@2.6.9, debug@^2.2.0:1919 version "2.6.9"1920 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"1921 integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==1922 dependencies:1923 ms "2.0.0"19241925debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:1926 version "4.3.4"1927 resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"1928 integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==1929 dependencies:1930 ms "2.1.2"19311932decamelize@^4.0.0:1933 version "4.0.0"1934 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"1935 integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==19361937decode-uri-component@^0.2.0:1938 version "0.2.0"1939 resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"1940 integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==19411942decompress-response@^3.3.0:1943 version "3.3.0"1944 resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"1945 integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==1946 dependencies:1947 mimic-response "^1.0.0"19481949decompress-response@^6.0.0:1950 version "6.0.0"1951 resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"1952 integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==1953 dependencies:1954 mimic-response "^3.1.0"19551956deep-eql@^3.0.1:1957 version "3.0.1"1958 resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"1959 integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==1960 dependencies:1961 type-detect "^4.0.0"19621963deep-extend@~0.6.0:1964 version "0.6.0"1965 resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"1966 integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==19671968deep-is@^0.1.3:1969 version "0.1.4"1970 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"1971 integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==19721973defer-to-connect@^2.0.0, defer-to-connect@^2.0.1:1974 version "2.0.1"1975 resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"1976 integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==19771978define-properties@^1.1.3, define-properties@^1.1.4:1979 version "1.1.4"1980 resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"1981 integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==1982 dependencies:1983 has-property-descriptors "^1.0.0"1984 object-keys "^1.1.1"19851986delayed-stream@~1.0.0:1987 version "1.0.0"1988 resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"1989 integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==19901991depd@2.0.0:1992 version "2.0.0"1993 resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"1994 integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==19951996des.js@^1.0.0:1997 version "1.0.1"1998 resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"1999 integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==2000 dependencies:2001 inherits "^2.0.1"2002 minimalistic-assert "^1.0.0"20032004destroy@1.2.0:2005 version "1.2.0"2006 resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"2007 integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==20082009diff@5.0.0:2010 version "5.0.0"2011 resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"2012 integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==20132014diff@^4.0.1:2015 version "4.0.2"2016 resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"2017 integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==20182019diffie-hellman@^5.0.0:2020 version "5.0.3"2021 resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"2022 integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==2023 dependencies:2024 bn.js "^4.1.0"2025 miller-rabin "^4.0.0"2026 randombytes "^2.0.0"20272028dir-glob@^3.0.1:2029 version "3.0.1"2030 resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"2031 integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==2032 dependencies:2033 path-type "^4.0.0"20342035doctrine@^3.0.0:2036 version "3.0.0"2037 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"2038 integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==2039 dependencies:2040 esutils "^2.0.2"20412042dom-walk@^0.1.0:2043 version "0.1.2"2044 resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"2045 integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==20462047ecc-jsbn@~0.1.1:2048 version "0.1.2"2049 resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"2050 integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==2051 dependencies:2052 jsbn "~0.1.0"2053 safer-buffer "^2.1.0"20542055ed2curve@^0.3.0:2056 version "0.3.0"2057 resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d"2058 integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==2059 dependencies:2060 tweetnacl "1.x.x"20612062ee-first@1.1.1:2063 version "1.1.1"2064 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"2065 integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==20662067electron-to-chromium@^1.4.251:2068 version "1.4.284"2069 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"2070 integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==20712072elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4:2073 version "6.5.4"2074 resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"2075 integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==2076 dependencies:2077 bn.js "^4.11.9"2078 brorand "^1.1.0"2079 hash.js "^1.0.0"2080 hmac-drbg "^1.0.1"2081 inherits "^2.0.4"2082 minimalistic-assert "^1.0.1"2083 minimalistic-crypto-utils "^1.0.1"20842085emoji-regex@^8.0.0:2086 version "8.0.0"2087 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"2088 integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==20892090encodeurl@~1.0.2:2091 version "1.0.2"2092 resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"2093 integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==20942095end-of-stream@^1.1.0:2096 version "1.4.4"2097 resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"2098 integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==2099 dependencies:2100 once "^1.4.0"21012102es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0:2103 version "1.20.4"2104 resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"2105 integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==2106 dependencies:2107 call-bind "^1.0.2"2108 es-to-primitive "^1.2.1"2109 function-bind "^1.1.1"2110 function.prototype.name "^1.1.5"2111 get-intrinsic "^1.1.3"2112 get-symbol-description "^1.0.0"2113 has "^1.0.3"2114 has-property-descriptors "^1.0.0"2115 has-symbols "^1.0.3"2116 internal-slot "^1.0.3"2117 is-callable "^1.2.7"2118 is-negative-zero "^2.0.2"2119 is-regex "^1.1.4"2120 is-shared-array-buffer "^1.0.2"2121 is-string "^1.0.7"2122 is-weakref "^1.0.2"2123 object-inspect "^1.12.2"2124 object-keys "^1.1.1"2125 object.assign "^4.1.4"2126 regexp.prototype.flags "^1.4.3"2127 safe-regex-test "^1.0.0"2128 string.prototype.trimend "^1.0.5"2129 string.prototype.trimstart "^1.0.5"2130 unbox-primitive "^1.0.2"21312132es-to-primitive@^1.2.1:2133 version "1.2.1"2134 resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"2135 integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==2136 dependencies:2137 is-callable "^1.1.4"2138 is-date-object "^1.0.1"2139 is-symbol "^1.0.2"21402141es5-ext@^0.10.35, es5-ext@^0.10.50:2142 version "0.10.62"2143 resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"2144 integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==2145 dependencies:2146 es6-iterator "^2.0.3"2147 es6-symbol "^3.1.3"2148 next-tick "^1.1.0"21492150es6-iterator@^2.0.3:2151 version "2.0.3"2152 resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"2153 integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==2154 dependencies:2155 d "1"2156 es5-ext "^0.10.35"2157 es6-symbol "^3.1.1"21582159es6-promise@^4.2.8:2160 version "4.2.8"2161 resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"2162 integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==21632164es6-symbol@^3.1.1, es6-symbol@^3.1.3:2165 version "3.1.3"2166 resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"2167 integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==2168 dependencies:2169 d "^1.0.1"2170 ext "^1.1.2"21712172escalade@^3.1.1:2173 version "3.1.1"2174 resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"2175 integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==21762177escape-html@~1.0.3:2178 version "1.0.3"2179 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"2180 integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==21812182escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:2183 version "4.0.0"2184 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"2185 integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==21862187escape-string-regexp@^1.0.5:2188 version "1.0.5"2189 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"2190 integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==21912192eslint-plugin-mocha@^10.1.0:2193 version "10.1.0"2194 resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz#69325414f875be87fb2cb00b2ef33168d4eb7c8d"2195 integrity sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==2196 dependencies:2197 eslint-utils "^3.0.0"2198 rambda "^7.1.0"21992200eslint-scope@^5.1.1:2201 version "5.1.1"2202 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"2203 integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==2204 dependencies:2205 esrecurse "^4.3.0"2206 estraverse "^4.1.1"22072208eslint-scope@^7.1.1:2209 version "7.1.1"2210 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"2211 integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==2212 dependencies:2213 esrecurse "^4.3.0"2214 estraverse "^5.2.0"22152216eslint-utils@^3.0.0:2217 version "3.0.0"2218 resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"2219 integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==2220 dependencies:2221 eslint-visitor-keys "^2.0.0"22222223eslint-visitor-keys@^2.0.0:2224 version "2.1.0"2225 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"2226 integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==22272228eslint-visitor-keys@^3.3.0:2229 version "3.3.0"2230 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"2231 integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==22322233eslint@^8.25.0:2234 version "8.25.0"2235 resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b"2236 integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==2237 dependencies:2238 "@eslint/eslintrc" "^1.3.3"2239 "@humanwhocodes/config-array" "^0.10.5"2240 "@humanwhocodes/module-importer" "^1.0.1"2241 ajv "^6.10.0"2242 chalk "^4.0.0"2243 cross-spawn "^7.0.2"2244 debug "^4.3.2"2245 doctrine "^3.0.0"2246 escape-string-regexp "^4.0.0"2247 eslint-scope "^7.1.1"2248 eslint-utils "^3.0.0"2249 eslint-visitor-keys "^3.3.0"2250 espree "^9.4.0"2251 esquery "^1.4.0"2252 esutils "^2.0.2"2253 fast-deep-equal "^3.1.3"2254 file-entry-cache "^6.0.1"2255 find-up "^5.0.0"2256 glob-parent "^6.0.1"2257 globals "^13.15.0"2258 globby "^11.1.0"2259 grapheme-splitter "^1.0.4"2260 ignore "^5.2.0"2261 import-fresh "^3.0.0"2262 imurmurhash "^0.1.4"2263 is-glob "^4.0.0"2264 js-sdsl "^4.1.4"2265 js-yaml "^4.1.0"2266 json-stable-stringify-without-jsonify "^1.0.1"2267 levn "^0.4.1"2268 lodash.merge "^4.6.2"2269 minimatch "^3.1.2"2270 natural-compare "^1.4.0"2271 optionator "^0.9.1"2272 regexpp "^3.2.0"2273 strip-ansi "^6.0.1"2274 strip-json-comments "^3.1.0"2275 text-table "^0.2.0"22762277espree@^9.4.0:2278 version "9.4.0"2279 resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a"2280 integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==2281 dependencies:2282 acorn "^8.8.0"2283 acorn-jsx "^5.3.2"2284 eslint-visitor-keys "^3.3.0"22852286esquery@^1.4.0:2287 version "1.4.0"2288 resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"2289 integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==2290 dependencies:2291 estraverse "^5.1.0"22922293esrecurse@^4.3.0:2294 version "4.3.0"2295 resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"2296 integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==2297 dependencies:2298 estraverse "^5.2.0"22992300estraverse@^4.1.1:2301 version "4.3.0"2302 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"2303 integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==23042305estraverse@^5.1.0, estraverse@^5.2.0:2306 version "5.3.0"2307 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"2308 integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==23092310esutils@^2.0.2:2311 version "2.0.3"2312 resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"2313 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==23142315etag@~1.8.1:2316 version "1.8.1"2317 resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"2318 integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==23192320eth-ens-namehash@2.0.8:2321 version "2.0.8"2322 resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf"2323 integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==2324 dependencies:2325 idna-uts46-hx "^2.3.1"2326 js-sha3 "^0.5.7"23272328eth-lib@0.2.8:2329 version "0.2.8"2330 resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"2331 integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==2332 dependencies:2333 bn.js "^4.11.6"2334 elliptic "^6.4.0"2335 xhr-request-promise "^0.1.2"23362337eth-lib@^0.1.26:2338 version "0.1.29"2339 resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9"2340 integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==2341 dependencies:2342 bn.js "^4.11.6"2343 elliptic "^6.4.0"2344 nano-json-stream-parser "^0.1.2"2345 servify "^0.1.12"2346 ws "^3.0.0"2347 xhr-request-promise "^0.1.2"23482349ethereum-bloom-filters@^1.0.6:2350 version "1.0.10"2351 resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a"2352 integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==2353 dependencies:2354 js-sha3 "^0.8.0"23552356ethereum-cryptography@^0.1.3:2357 version "0.1.3"2358 resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191"2359 integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==2360 dependencies:2361 "@types/pbkdf2" "^3.0.0"2362 "@types/secp256k1" "^4.0.1"2363 blakejs "^1.1.0"2364 browserify-aes "^1.2.0"2365 bs58check "^2.1.2"2366 create-hash "^1.2.0"2367 create-hmac "^1.1.7"2368 hash.js "^1.1.7"2369 keccak "^3.0.0"2370 pbkdf2 "^3.0.17"2371 randombytes "^2.1.0"2372 safe-buffer "^5.1.2"2373 scrypt-js "^3.0.0"2374 secp256k1 "^4.0.1"2375 setimmediate "^1.0.5"23762377ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5:2378 version "7.1.5"2379 resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181"2380 integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==2381 dependencies:2382 "@types/bn.js" "^5.1.0"2383 bn.js "^5.1.2"2384 create-hash "^1.1.2"2385 ethereum-cryptography "^0.1.3"2386 rlp "^2.2.4"23872388ethjs-unit@0.1.6:2389 version "0.1.6"2390 resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699"2391 integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==2392 dependencies:2393 bn.js "4.11.6"2394 number-to-bn "1.7.0"23952396eventemitter3@4.0.4:2397 version "4.0.4"2398 resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"2399 integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==24002401eventemitter3@^4.0.7:2402 version "4.0.7"2403 resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"2404 integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==24052406evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:2407 version "1.0.3"2408 resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"2409 integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==2410 dependencies:2411 md5.js "^1.3.4"2412 safe-buffer "^5.1.1"24132414express@^4.14.0:2415 version "4.18.2"2416 resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"2417 integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==2418 dependencies:2419 accepts "~1.3.8"2420 array-flatten "1.1.1"2421 body-parser "1.20.1"2422 content-disposition "0.5.4"2423 content-type "~1.0.4"2424 cookie "0.5.0"2425 cookie-signature "1.0.6"2426 debug "2.6.9"2427 depd "2.0.0"2428 encodeurl "~1.0.2"2429 escape-html "~1.0.3"2430 etag "~1.8.1"2431 finalhandler "1.2.0"2432 fresh "0.5.2"2433 http-errors "2.0.0"2434 merge-descriptors "1.0.1"2435 methods "~1.1.2"2436 on-finished "2.4.1"2437 parseurl "~1.3.3"2438 path-to-regexp "0.1.7"2439 proxy-addr "~2.0.7"2440 qs "6.11.0"2441 range-parser "~1.2.1"2442 safe-buffer "5.2.1"2443 send "0.18.0"2444 serve-static "1.15.0"2445 setprototypeof "1.2.0"2446 statuses "2.0.1"2447 type-is "~1.6.18"2448 utils-merge "1.0.1"2449 vary "~1.1.2"24502451ext@^1.1.2:2452 version "1.7.0"2453 resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"2454 integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==2455 dependencies:2456 type "^2.7.2"24572458extend@~3.0.2:2459 version "3.0.2"2460 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"2461 integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==24622463extsprintf@1.3.0:2464 version "1.3.0"2465 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"2466 integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==24672468extsprintf@^1.2.0:2469 version "1.4.1"2470 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"2471 integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==24722473fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:2474 version "3.1.3"2475 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"2476 integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==24772478fast-glob@^3.2.9:2479 version "3.2.12"2480 resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"2481 integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==2482 dependencies:2483 "@nodelib/fs.stat" "^2.0.2"2484 "@nodelib/fs.walk" "^1.2.3"2485 glob-parent "^5.1.2"2486 merge2 "^1.3.0"2487 micromatch "^4.0.4"24882489fast-json-stable-stringify@^2.0.0:2490 version "2.1.0"2491 resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"2492 integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==24932494fast-levenshtein@^2.0.6:2495 version "2.0.6"2496 resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"2497 integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==24982499fastq@^1.6.0:2500 version "1.13.0"2501 resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"2502 integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==2503 dependencies:2504 reusify "^1.0.4"25052506fetch-blob@^3.1.2, fetch-blob@^3.1.4:2507 version "3.2.0"2508 resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"2509 integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==2510 dependencies:2511 node-domexception "^1.0.0"2512 web-streams-polyfill "^3.0.3"25132514file-entry-cache@^6.0.1:2515 version "6.0.1"2516 resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"2517 integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==2518 dependencies:2519 flat-cache "^3.0.4"25202521fill-range@^7.0.1:2522 version "7.0.1"2523 resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"2524 integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==2525 dependencies:2526 to-regex-range "^5.0.1"25272528finalhandler@1.2.0:2529 version "1.2.0"2530 resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"2531 integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==2532 dependencies:2533 debug "2.6.9"2534 encodeurl "~1.0.2"2535 escape-html "~1.0.3"2536 on-finished "2.4.1"2537 parseurl "~1.3.3"2538 statuses "2.0.1"2539 unpipe "~1.0.0"25402541find-cache-dir@^2.0.0:2542 version "2.1.0"2543 resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"2544 integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==2545 dependencies:2546 commondir "^1.0.1"2547 make-dir "^2.0.0"2548 pkg-dir "^3.0.0"25492550find-process@^1.4.7:2551 version "1.4.7"2552 resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.7.tgz#8c76962259216c381ef1099371465b5b439ea121"2553 integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==2554 dependencies:2555 chalk "^4.0.0"2556 commander "^5.1.0"2557 debug "^4.1.1"25582559find-replace@^3.0.0:2560 version "3.0.0"2561 resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"2562 integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==2563 dependencies:2564 array-back "^3.0.1"25652566find-up@5.0.0, find-up@^5.0.0:2567 version "5.0.0"2568 resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"2569 integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==2570 dependencies:2571 locate-path "^6.0.0"2572 path-exists "^4.0.0"25732574find-up@^3.0.0:2575 version "3.0.0"2576 resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"2577 integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==2578 dependencies:2579 locate-path "^3.0.0"25802581flat-cache@^3.0.4:2582 version "3.0.4"2583 resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"2584 integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==2585 dependencies:2586 flatted "^3.1.0"2587 rimraf "^3.0.2"25882589flat@^5.0.2:2590 version "5.0.2"2591 resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"2592 integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==25932594flatted@^3.1.0:2595 version "3.2.7"2596 resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"2597 integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==25982599follow-redirects@^1.12.1:2600 version "1.15.2"2601 resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"2602 integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==26032604for-each@^0.3.3:2605 version "0.3.3"2606 resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"2607 integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==2608 dependencies:2609 is-callable "^1.1.3"26102611forever-agent@~0.6.1:2612 version "0.6.1"2613 resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"2614 integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==26152616form-data-encoder@1.7.1:2617 version "1.7.1"2618 resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96"2619 integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==26202621form-data@^3.0.0:2622 version "3.0.1"2623 resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"2624 integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==2625 dependencies:2626 asynckit "^0.4.0"2627 combined-stream "^1.0.8"2628 mime-types "^2.1.12"26292630form-data@~2.3.2:2631 version "2.3.3"2632 resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"2633 integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==2634 dependencies:2635 asynckit "^0.4.0"2636 combined-stream "^1.0.6"2637 mime-types "^2.1.12"26382639formdata-polyfill@^4.0.10:2640 version "4.0.10"2641 resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"2642 integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==2643 dependencies:2644 fetch-blob "^3.1.2"26452646forwarded@0.2.0:2647 version "0.2.0"2648 resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"2649 integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==26502651fresh@0.5.2:2652 version "0.5.2"2653 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"2654 integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==26552656fs-extra@^4.0.2:2657 version "4.0.3"2658 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"2659 integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==2660 dependencies:2661 graceful-fs "^4.1.2"2662 jsonfile "^4.0.0"2663 universalify "^0.1.0"26642665fs-extra@^7.0.0:2666 version "7.0.1"2667 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"2668 integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==2669 dependencies:2670 graceful-fs "^4.1.2"2671 jsonfile "^4.0.0"2672 universalify "^0.1.0"26732674fs-minipass@^1.2.7:2675 version "1.2.7"2676 resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"2677 integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==2678 dependencies:2679 minipass "^2.6.0"26802681fs.realpath@^1.0.0:2682 version "1.0.0"2683 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"2684 integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==26852686fsevents@~2.3.2:2687 version "2.3.2"2688 resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"2689 integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==26902691function-bind@^1.1.1:2692 version "1.1.1"2693 resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"2694 integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==26952696function.prototype.name@^1.1.5:2697 version "1.1.5"2698 resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"2699 integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==2700 dependencies:2701 call-bind "^1.0.2"2702 define-properties "^1.1.3"2703 es-abstract "^1.19.0"2704 functions-have-names "^1.2.2"27052706functions-have-names@^1.2.2:2707 version "1.2.3"2708 resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"2709 integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==27102711gensync@^1.0.0-beta.2:2712 version "1.0.0-beta.2"2713 resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"2714 integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==27152716get-caller-file@^2.0.5:2717 version "2.0.5"2718 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"2719 integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==27202721get-func-name@^2.0.0:2722 version "2.0.0"2723 resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"2724 integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==27252726get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:2727 version "1.1.3"2728 resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"2729 integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==2730 dependencies:2731 function-bind "^1.1.1"2732 has "^1.0.3"2733 has-symbols "^1.0.3"27342735get-stream@^5.1.0:2736 version "5.2.0"2737 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"2738 integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==2739 dependencies:2740 pump "^3.0.0"27412742get-stream@^6.0.1:2743 version "6.0.1"2744 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"2745 integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==27462747get-symbol-description@^1.0.0:2748 version "1.0.0"2749 resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"2750 integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==2751 dependencies:2752 call-bind "^1.0.2"2753 get-intrinsic "^1.1.1"27542755getpass@^0.1.1:2756 version "0.1.7"2757 resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"2758 integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==2759 dependencies:2760 assert-plus "^1.0.0"27612762glob-parent@^5.1.2, glob-parent@~5.1.2:2763 version "5.1.2"2764 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"2765 integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==2766 dependencies:2767 is-glob "^4.0.1"27682769glob-parent@^6.0.1:2770 version "6.0.2"2771 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"2772 integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==2773 dependencies:2774 is-glob "^4.0.3"27752776glob@7.1.7:2777 version "7.1.7"2778 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"2779 integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==2780 dependencies:2781 fs.realpath "^1.0.0"2782 inflight "^1.0.4"2783 inherits "2"2784 minimatch "^3.0.4"2785 once "^1.3.0"2786 path-is-absolute "^1.0.0"27872788glob@7.2.0:2789 version "7.2.0"2790 resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"2791 integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==2792 dependencies:2793 fs.realpath "^1.0.0"2794 inflight "^1.0.4"2795 inherits "2"2796 minimatch "^3.0.4"2797 once "^1.3.0"2798 path-is-absolute "^1.0.0"27992800glob@^7.1.3:2801 version "7.2.3"2802 resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"2803 integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==2804 dependencies:2805 fs.realpath "^1.0.0"2806 inflight "^1.0.4"2807 inherits "2"2808 minimatch "^3.1.1"2809 once "^1.3.0"2810 path-is-absolute "^1.0.0"28112812global@~4.4.0:2813 version "4.4.0"2814 resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"2815 integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==2816 dependencies:2817 min-document "^2.19.0"2818 process "^0.11.10"28192820globals@^11.1.0:2821 version "11.12.0"2822 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"2823 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==28242825globals@^13.15.0:2826 version "13.17.0"2827 resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4"2828 integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==2829 dependencies:2830 type-fest "^0.20.2"28312832globby@^11.1.0:2833 version "11.1.0"2834 resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"2835 integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==2836 dependencies:2837 array-union "^2.1.0"2838 dir-glob "^3.0.1"2839 fast-glob "^3.2.9"2840 ignore "^5.2.0"2841 merge2 "^1.4.1"2842 slash "^3.0.0"28432844got@12.1.0:2845 version "12.1.0"2846 resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4"2847 integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==2848 dependencies:2849 "@sindresorhus/is" "^4.6.0"2850 "@szmarczak/http-timer" "^5.0.1"2851 "@types/cacheable-request" "^6.0.2"2852 "@types/responselike" "^1.0.0"2853 cacheable-lookup "^6.0.4"2854 cacheable-request "^7.0.2"2855 decompress-response "^6.0.0"2856 form-data-encoder "1.7.1"2857 get-stream "^6.0.1"2858 http2-wrapper "^2.1.10"2859 lowercase-keys "^3.0.0"2860 p-cancelable "^3.0.0"2861 responselike "^2.0.0"28622863got@^11.8.5:2864 version "11.8.5"2865 resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046"2866 integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==2867 dependencies:2868 "@sindresorhus/is" "^4.0.0"2869 "@szmarczak/http-timer" "^4.0.5"2870 "@types/cacheable-request" "^6.0.1"2871 "@types/responselike" "^1.0.0"2872 cacheable-lookup "^5.0.3"2873 cacheable-request "^7.0.2"2874 decompress-response "^6.0.0"2875 http2-wrapper "^1.0.0-beta.5.2"2876 lowercase-keys "^2.0.0"2877 p-cancelable "^2.0.0"2878 responselike "^2.0.0"28792880graceful-fs@^4.1.2, graceful-fs@^4.1.6:2881 version "4.2.10"2882 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"2883 integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==28842885grapheme-splitter@^1.0.4:2886 version "1.0.4"2887 resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"2888 integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==28892890handlebars@^4.7.7:2891 version "4.7.7"2892 resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"2893 integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==2894 dependencies:2895 minimist "^1.2.5"2896 neo-async "^2.6.0"2897 source-map "^0.6.1"2898 wordwrap "^1.0.0"2899 optionalDependencies:2900 uglify-js "^3.1.4"29012902har-schema@^2.0.0:2903 version "2.0.0"2904 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"2905 integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==29062907har-validator@~5.1.3:2908 version "5.1.5"2909 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"2910 integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==2911 dependencies:2912 ajv "^6.12.3"2913 har-schema "^2.0.0"29142915has-bigints@^1.0.1, has-bigints@^1.0.2:2916 version "1.0.2"2917 resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"2918 integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==29192920has-flag@^3.0.0:2921 version "3.0.0"2922 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"2923 integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==29242925has-flag@^4.0.0:2926 version "4.0.0"2927 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"2928 integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==29292930has-property-descriptors@^1.0.0:2931 version "1.0.0"2932 resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"2933 integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==2934 dependencies:2935 get-intrinsic "^1.1.1"29362937has-symbols@^1.0.2, has-symbols@^1.0.3:2938 version "1.0.3"2939 resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"2940 integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==29412942has-tostringtag@^1.0.0:2943 version "1.0.0"2944 resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"2945 integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==2946 dependencies:2947 has-symbols "^1.0.2"29482949has@^1.0.3:2950 version "1.0.3"2951 resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"2952 integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==2953 dependencies:2954 function-bind "^1.1.1"29552956hash-base@^3.0.0:2957 version "3.1.0"2958 resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"2959 integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==2960 dependencies:2961 inherits "^2.0.4"2962 readable-stream "^3.6.0"2963 safe-buffer "^5.2.0"29642965hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:2966 version "1.1.7"2967 resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"2968 integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==2969 dependencies:2970 inherits "^2.0.3"2971 minimalistic-assert "^1.0.1"29722973he@1.2.0:2974 version "1.2.0"2975 resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"2976 integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==29772978hmac-drbg@^1.0.1:2979 version "1.0.1"2980 resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"2981 integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==2982 dependencies:2983 hash.js "^1.0.3"2984 minimalistic-assert "^1.0.0"2985 minimalistic-crypto-utils "^1.0.1"29862987http-cache-semantics@^4.0.0:2988 version "4.1.0"2989 resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"2990 integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==29912992http-errors@2.0.0:2993 version "2.0.0"2994 resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"2995 integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==2996 dependencies:2997 depd "2.0.0"2998 inherits "2.0.4"2999 setprototypeof "1.2.0"3000 statuses "2.0.1"3001 toidentifier "1.0.1"30023003http-https@^1.0.0:3004 version "1.0.0"3005 resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"3006 integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==30073008http-signature@~1.2.0:3009 version "1.2.0"3010 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"3011 integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==3012 dependencies:3013 assert-plus "^1.0.0"3014 jsprim "^1.2.2"3015 sshpk "^1.7.0"30163017http2-wrapper@^1.0.0-beta.5.2:3018 version "1.0.3"3019 resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"3020 integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==3021 dependencies:3022 quick-lru "^5.1.1"3023 resolve-alpn "^1.0.0"30243025http2-wrapper@^2.1.10:3026 version "2.1.11"3027 resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef"3028 integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==3029 dependencies:3030 quick-lru "^5.1.1"3031 resolve-alpn "^1.2.0"30323033iconv-lite@0.4.24:3034 version "0.4.24"3035 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"3036 integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==3037 dependencies:3038 safer-buffer ">= 2.1.2 < 3"30393040idna-uts46-hx@^2.3.1:3041 version "2.3.1"3042 resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9"3043 integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==3044 dependencies:3045 punycode "2.1.0"30463047ieee754@^1.1.13:3048 version "1.2.1"3049 resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"3050 integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==30513052ignore@^5.2.0:3053 version "5.2.0"3054 resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"3055 integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==30563057import-fresh@^3.0.0, import-fresh@^3.2.1:3058 version "3.3.0"3059 resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"3060 integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==3061 dependencies:3062 parent-module "^1.0.0"3063 resolve-from "^4.0.0"30643065imurmurhash@^0.1.4:3066 version "0.1.4"3067 resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"3068 integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==30693070inflight@^1.0.4:3071 version "1.0.6"3072 resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"3073 integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==3074 dependencies:3075 once "^1.3.0"3076 wrappy "1"30773078inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4:3079 version "2.0.4"3080 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"3081 integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==30823083internal-slot@^1.0.3:3084 version "1.0.3"3085 resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"3086 integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==3087 dependencies:3088 get-intrinsic "^1.1.0"3089 has "^1.0.3"3090 side-channel "^1.0.4"30913092ipaddr.js@1.9.1:3093 version "1.9.1"3094 resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"3095 integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==30963097is-arguments@^1.0.4:3098 version "1.1.1"3099 resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"3100 integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==3101 dependencies:3102 call-bind "^1.0.2"3103 has-tostringtag "^1.0.0"31043105is-bigint@^1.0.1:3106 version "1.0.4"3107 resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"3108 integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==3109 dependencies:3110 has-bigints "^1.0.1"31113112is-binary-path@~2.1.0:3113 version "2.1.0"3114 resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"3115 integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==3116 dependencies:3117 binary-extensions "^2.0.0"31183119is-boolean-object@^1.1.0:3120 version "1.1.2"3121 resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"3122 integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==3123 dependencies:3124 call-bind "^1.0.2"3125 has-tostringtag "^1.0.0"31263127is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:3128 version "1.2.7"3129 resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"3130 integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==31313132is-date-object@^1.0.1:3133 version "1.0.5"3134 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"3135 integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==3136 dependencies:3137 has-tostringtag "^1.0.0"31383139is-extglob@^2.1.1:3140 version "2.1.1"3141 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"3142 integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==31433144is-fullwidth-code-point@^3.0.0:3145 version "3.0.0"3146 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"3147 integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==31483149is-function@^1.0.1:3150 version "1.0.2"3151 resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"3152 integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==31533154is-generator-function@^1.0.7:3155 version "1.0.10"3156 resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"3157 integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==3158 dependencies:3159 has-tostringtag "^1.0.0"31603161is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:3162 version "4.0.3"3163 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"3164 integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==3165 dependencies:3166 is-extglob "^2.1.1"31673168is-hex-prefixed@1.0.0:3169 version "1.0.0"3170 resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554"3171 integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==31723173is-negative-zero@^2.0.2:3174 version "2.0.2"3175 resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"3176 integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==31773178is-number-object@^1.0.4:3179 version "1.0.7"3180 resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"3181 integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==3182 dependencies:3183 has-tostringtag "^1.0.0"31843185is-number@^7.0.0:3186 version "7.0.0"3187 resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"3188 integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==31893190is-plain-obj@^2.1.0:3191 version "2.1.0"3192 resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"3193 integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==31943195is-plain-object@^2.0.4:3196 version "2.0.4"3197 resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"3198 integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==3199 dependencies:3200 isobject "^3.0.1"32013202is-regex@^1.1.4:3203 version "1.1.4"3204 resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"3205 integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==3206 dependencies:3207 call-bind "^1.0.2"3208 has-tostringtag "^1.0.0"32093210is-shared-array-buffer@^1.0.2:3211 version "1.0.2"3212 resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"3213 integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==3214 dependencies:3215 call-bind "^1.0.2"32163217is-string@^1.0.5, is-string@^1.0.7:3218 version "1.0.7"3219 resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"3220 integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==3221 dependencies:3222 has-tostringtag "^1.0.0"32233224is-symbol@^1.0.2, is-symbol@^1.0.3:3225 version "1.0.4"3226 resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"3227 integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==3228 dependencies:3229 has-symbols "^1.0.2"32303231is-typed-array@^1.1.3, is-typed-array@^1.1.9:3232 version "1.1.9"3233 resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67"3234 integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==3235 dependencies:3236 available-typed-arrays "^1.0.5"3237 call-bind "^1.0.2"3238 es-abstract "^1.20.0"3239 for-each "^0.3.3"3240 has-tostringtag "^1.0.0"32413242is-typedarray@^1.0.0, is-typedarray@~1.0.0:3243 version "1.0.0"3244 resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"3245 integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==32463247is-unicode-supported@^0.1.0:3248 version "0.1.0"3249 resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"3250 integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==32513252is-weakref@^1.0.2:3253 version "1.0.2"3254 resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"3255 integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==3256 dependencies:3257 call-bind "^1.0.2"32583259isexe@^2.0.0:3260 version "2.0.0"3261 resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"3262 integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==32633264isobject@^3.0.1:3265 version "3.0.1"3266 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"3267 integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==32683269isstream@~0.1.2:3270 version "0.1.2"3271 resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"3272 integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==32733274js-sdsl@^4.1.4:3275 version "4.1.5"3276 resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a"3277 integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==32783279js-sha3@0.8.0, js-sha3@^0.8.0:3280 version "0.8.0"3281 resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"3282 integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==32833284js-sha3@^0.5.7:3285 version "0.5.7"3286 resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7"3287 integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==32883289js-tokens@^4.0.0:3290 version "4.0.0"3291 resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"3292 integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==32933294js-yaml@4.1.0, js-yaml@^4.1.0:3295 version "4.1.0"3296 resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"3297 integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==3298 dependencies:3299 argparse "^2.0.1"33003301jsbn@~0.1.0:3302 version "0.1.1"3303 resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"3304 integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==33053306jsesc@^2.5.1:3307 version "2.5.2"3308 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"3309 integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==33103311json-buffer@3.0.1:3312 version "3.0.1"3313 resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"3314 integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==33153316json-schema-traverse@^0.4.1:3317 version "0.4.1"3318 resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"3319 integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==33203321json-schema@0.4.0:3322 version "0.4.0"3323 resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"3324 integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==33253326json-stable-stringify-without-jsonify@^1.0.1:3327 version "1.0.1"3328 resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"3329 integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==33303331json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:3332 version "5.0.1"3333 resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"3334 integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==33353336json5@^2.2.1:3337 version "2.2.1"3338 resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"3339 integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==33403341jsonfile@^4.0.0:3342 version "4.0.0"3343 resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"3344 integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==3345 optionalDependencies:3346 graceful-fs "^4.1.6"33473348jsprim@^1.2.2:3349 version "1.4.2"3350 resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"3351 integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==3352 dependencies:3353 assert-plus "1.0.0"3354 extsprintf "1.3.0"3355 json-schema "0.4.0"3356 verror "1.10.0"33573358keccak@^3.0.0:3359 version "3.0.2"3360 resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0"3361 integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==3362 dependencies:3363 node-addon-api "^2.0.0"3364 node-gyp-build "^4.2.0"3365 readable-stream "^3.6.0"33663367keyv@*, keyv@^4.0.0:3368 version "4.5.0"3369 resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6"3370 integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==3371 dependencies:3372 json-buffer "3.0.1"33733374kind-of@^6.0.2:3375 version "6.0.3"3376 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"3377 integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==33783379levn@^0.4.1:3380 version "0.4.1"3381 resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"3382 integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==3383 dependencies:3384 prelude-ls "^1.2.1"3385 type-check "~0.4.0"33863387locate-path@^3.0.0:3388 version "3.0.0"3389 resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"3390 integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==3391 dependencies:3392 p-locate "^3.0.0"3393 path-exists "^3.0.0"33943395locate-path@^6.0.0:3396 version "6.0.0"3397 resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"3398 integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==3399 dependencies:3400 p-locate "^5.0.0"34013402lodash.camelcase@^4.3.0:3403 version "4.3.0"3404 resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"3405 integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==34063407lodash.merge@^4.6.2:3408 version "4.6.2"3409 resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"3410 integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==34113412lodash@^4.17.15, lodash@^4.17.21:3413 version "4.17.21"3414 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"3415 integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==34163417log-symbols@4.1.0:3418 version "4.1.0"3419 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"3420 integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==3421 dependencies:3422 chalk "^4.1.0"3423 is-unicode-supported "^0.1.0"34243425loupe@^2.3.1:3426 version "2.3.4"3427 resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3"3428 integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==3429 dependencies:3430 get-func-name "^2.0.0"34313432lowercase-keys@^2.0.0:3433 version "2.0.0"3434 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"3435 integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==34363437lowercase-keys@^3.0.0:3438 version "3.0.0"3439 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2"3440 integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==34413442lru-cache@^6.0.0:3443 version "6.0.0"3444 resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"3445 integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==3446 dependencies:3447 yallist "^4.0.0"34483449make-dir@^2.0.0, make-dir@^2.1.0:3450 version "2.1.0"3451 resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"3452 integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==3453 dependencies:3454 pify "^4.0.1"3455 semver "^5.6.0"34563457make-error@^1.1.1:3458 version "1.3.6"3459 resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"3460 integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==34613462md5.js@^1.3.4:3463 version "1.3.5"3464 resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"3465 integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==3466 dependencies:3467 hash-base "^3.0.0"3468 inherits "^2.0.1"3469 safe-buffer "^5.1.2"34703471media-typer@0.3.0:3472 version "0.3.0"3473 resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"3474 integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==34753476memorystream@^0.3.1:3477 version "0.3.1"3478 resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"3479 integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==34803481merge-descriptors@1.0.1:3482 version "1.0.1"3483 resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"3484 integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==34853486merge2@^1.3.0, merge2@^1.4.1:3487 version "1.4.1"3488 resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"3489 integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==34903491methods@~1.1.2:3492 version "1.1.2"3493 resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"3494 integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==34953496micromatch@^4.0.4:3497 version "4.0.5"3498 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"3499 integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==3500 dependencies:3501 braces "^3.0.2"3502 picomatch "^2.3.1"35033504miller-rabin@^4.0.0:3505 version "4.0.1"3506 resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"3507 integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==3508 dependencies:3509 bn.js "^4.0.0"3510 brorand "^1.0.1"35113512mime-db@1.52.0:3513 version "1.52.0"3514 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"3515 integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==35163517mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:3518 version "2.1.35"3519 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"3520 integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==3521 dependencies:3522 mime-db "1.52.0"35233524mime@1.6.0:3525 version "1.6.0"3526 resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"3527 integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==35283529mimic-response@^1.0.0:3530 version "1.0.1"3531 resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"3532 integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==35333534mimic-response@^3.1.0:3535 version "3.1.0"3536 resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"3537 integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==35383539min-document@^2.19.0:3540 version "2.19.0"3541 resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"3542 integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==3543 dependencies:3544 dom-walk "^0.1.0"35453546minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:3547 version "1.0.1"3548 resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"3549 integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==35503551minimalistic-crypto-utils@^1.0.1:3552 version "1.0.1"3553 resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"3554 integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==35553556minimatch@5.0.1:3557 version "5.0.1"3558 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b"3559 integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==3560 dependencies:3561 brace-expansion "^2.0.1"35623563minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:3564 version "3.1.2"3565 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"3566 integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==3567 dependencies:3568 brace-expansion "^1.1.7"35693570minimist@^1.2.5, minimist@^1.2.6:3571 version "1.2.7"3572 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"3573 integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==35743575minipass@^2.6.0, minipass@^2.9.0:3576 version "2.9.0"3577 resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"3578 integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==3579 dependencies:3580 safe-buffer "^5.1.2"3581 yallist "^3.0.0"35823583minizlib@^1.3.3:3584 version "1.3.3"3585 resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"3586 integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==3587 dependencies:3588 minipass "^2.9.0"35893590mkdirp-promise@^5.0.1:3591 version "5.0.1"3592 resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"3593 integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==3594 dependencies:3595 mkdirp "*"35963597mkdirp@*, mkdirp@^1.0.4:3598 version "1.0.4"3599 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"3600 integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==36013602mkdirp@^0.5.5:3603 version "0.5.6"3604 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"3605 integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==3606 dependencies:3607 minimist "^1.2.6"36083609mocha@^10.1.0:3610 version "10.1.0"3611 resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a"3612 integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==3613 dependencies:3614 ansi-colors "4.1.1"3615 browser-stdout "1.3.1"3616 chokidar "3.5.3"3617 debug "4.3.4"3618 diff "5.0.0"3619 escape-string-regexp "4.0.0"3620 find-up "5.0.0"3621 glob "7.2.0"3622 he "1.2.0"3623 js-yaml "4.1.0"3624 log-symbols "4.1.0"3625 minimatch "5.0.1"3626 ms "2.1.3"3627 nanoid "3.3.3"3628 serialize-javascript "6.0.0"3629 strip-json-comments "3.1.1"3630 supports-color "8.1.1"3631 workerpool "6.2.1"3632 yargs "16.2.0"3633 yargs-parser "20.2.4"3634 yargs-unparser "2.0.0"36353636mock-fs@^4.1.0:3637 version "4.14.0"3638 resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18"3639 integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==36403641mock-socket@^9.1.5:3642 version "9.1.5"3643 resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.1.5.tgz#2c4e44922ad556843b6dfe09d14ed8041fa2cdeb"3644 integrity sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==36453646ms@2.0.0:3647 version "2.0.0"3648 resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"3649 integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==36503651ms@2.1.2:3652 version "2.1.2"3653 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"3654 integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==36553656ms@2.1.3:3657 version "2.1.3"3658 resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"3659 integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==36603661multibase@^0.7.0:3662 version "0.7.0"3663 resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b"3664 integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==3665 dependencies:3666 base-x "^3.0.8"3667 buffer "^5.5.0"36683669multibase@~0.6.0:3670 version "0.6.1"3671 resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b"3672 integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==3673 dependencies:3674 base-x "^3.0.8"3675 buffer "^5.5.0"36763677multicodec@^0.5.5:3678 version "0.5.7"3679 resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd"3680 integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==3681 dependencies:3682 varint "^5.0.0"36833684multicodec@^1.0.0:3685 version "1.0.4"3686 resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f"3687 integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==3688 dependencies:3689 buffer "^5.6.0"3690 varint "^5.0.0"36913692multihashes@^0.4.15, multihashes@~0.4.15:3693 version "0.4.21"3694 resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5"3695 integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==3696 dependencies:3697 buffer "^5.5.0"3698 multibase "^0.7.0"3699 varint "^5.0.0"37003701nano-json-stream-parser@^0.1.2:3702 version "0.1.2"3703 resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f"3704 integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==37053706nanoid@3.3.3:3707 version "3.3.3"3708 resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"3709 integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==37103711natural-compare@^1.4.0:3712 version "1.4.0"3713 resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"3714 integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==37153716negotiator@0.6.3:3717 version "0.6.3"3718 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"3719 integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==37203721neo-async@^2.6.0:3722 version "2.6.2"3723 resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"3724 integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==37253726next-tick@^1.1.0:3727 version "1.1.0"3728 resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"3729 integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==37303731nock@^13.2.9:3732 version "13.2.9"3733 resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c"3734 integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==3735 dependencies:3736 debug "^4.1.0"3737 json-stringify-safe "^5.0.1"3738 lodash "^4.17.21"3739 propagate "^2.0.0"37403741node-addon-api@^2.0.0:3742 version "2.0.2"3743 resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"3744 integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==37453746node-domexception@^1.0.0:3747 version "1.0.0"3748 resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"3749 integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==37503751node-fetch@2.6.7:3752 version "2.6.7"3753 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"3754 integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==3755 dependencies:3756 whatwg-url "^5.0.0"37573758node-fetch@^3.2.10:3759 version "3.2.10"3760 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8"3761 integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==3762 dependencies:3763 data-uri-to-buffer "^4.0.0"3764 fetch-blob "^3.1.4"3765 formdata-polyfill "^4.0.10"37663767node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:3768 version "4.5.0"3769 resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40"3770 integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==37713772node-releases@^2.0.6:3773 version "2.0.6"3774 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"3775 integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==37763777normalize-path@^3.0.0, normalize-path@~3.0.0:3778 version "3.0.0"3779 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"3780 integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==37813782normalize-url@^6.0.1:3783 version "6.1.0"3784 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"3785 integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==37863787number-to-bn@1.7.0:3788 version "1.7.0"3789 resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0"3790 integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==3791 dependencies:3792 bn.js "4.11.6"3793 strip-hex-prefix "1.0.0"37943795oauth-sign@~0.9.0:3796 version "0.9.0"3797 resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"3798 integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==37993800object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1:3801 version "4.1.1"3802 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"3803 integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==38043805object-inspect@^1.12.2, object-inspect@^1.9.0:3806 version "1.12.2"3807 resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"3808 integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==38093810object-keys@^1.1.1:3811 version "1.1.1"3812 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"3813 integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==38143815object.assign@^4.1.4:3816 version "4.1.4"3817 resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"3818 integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==3819 dependencies:3820 call-bind "^1.0.2"3821 define-properties "^1.1.4"3822 has-symbols "^1.0.3"3823 object-keys "^1.1.1"38243825oboe@2.1.5:3826 version "2.1.5"3827 resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd"3828 integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==3829 dependencies:3830 http-https "^1.0.0"38313832on-finished@2.4.1:3833 version "2.4.1"3834 resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"3835 integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==3836 dependencies:3837 ee-first "1.1.1"38383839once@^1.3.0, once@^1.3.1, once@^1.4.0:3840 version "1.4.0"3841 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"3842 integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==3843 dependencies:3844 wrappy "1"38453846optionator@^0.9.1:3847 version "0.9.1"3848 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"3849 integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==3850 dependencies:3851 deep-is "^0.1.3"3852 fast-levenshtein "^2.0.6"3853 levn "^0.4.1"3854 prelude-ls "^1.2.1"3855 type-check "^0.4.0"3856 word-wrap "^1.2.3"38573858os-tmpdir@~1.0.2:3859 version "1.0.2"3860 resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"3861 integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==38623863p-cancelable@^2.0.0:3864 version "2.1.1"3865 resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"3866 integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==38673868p-cancelable@^3.0.0:3869 version "3.0.0"3870 resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050"3871 integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==38723873p-limit@^2.0.0:3874 version "2.3.0"3875 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"3876 integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==3877 dependencies:3878 p-try "^2.0.0"38793880p-limit@^3.0.2:3881 version "3.1.0"3882 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"3883 integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==3884 dependencies:3885 yocto-queue "^0.1.0"38863887p-locate@^3.0.0:3888 version "3.0.0"3889 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"3890 integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==3891 dependencies:3892 p-limit "^2.0.0"38933894p-locate@^5.0.0:3895 version "5.0.0"3896 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"3897 integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==3898 dependencies:3899 p-limit "^3.0.2"39003901p-try@^2.0.0:3902 version "2.2.0"3903 resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"3904 integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==39053906pako@^2.0.4:3907 version "2.0.4"3908 resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d"3909 integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==39103911parent-module@^1.0.0:3912 version "1.0.1"3913 resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"3914 integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==3915 dependencies:3916 callsites "^3.0.0"39173918parse-asn1@^5.0.0, parse-asn1@^5.1.5:3919 version "5.1.6"3920 resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"3921 integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==3922 dependencies:3923 asn1.js "^5.2.0"3924 browserify-aes "^1.0.0"3925 evp_bytestokey "^1.0.0"3926 pbkdf2 "^3.0.3"3927 safe-buffer "^5.1.1"39283929parse-headers@^2.0.0:3930 version "2.0.5"3931 resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9"3932 integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==39333934parseurl@~1.3.3:3935 version "1.3.3"3936 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"3937 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==39383939path-exists@^3.0.0:3940 version "3.0.0"3941 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"3942 integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==39433944path-exists@^4.0.0:3945 version "4.0.0"3946 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"3947 integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==39483949path-is-absolute@^1.0.0:3950 version "1.0.1"3951 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"3952 integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==39533954path-key@^3.1.0:3955 version "3.1.1"3956 resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"3957 integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==39583959path-to-regexp@0.1.7:3960 version "0.1.7"3961 resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"3962 integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==39633964path-type@^4.0.0:3965 version "4.0.0"3966 resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"3967 integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==39683969pathval@^1.1.1:3970 version "1.1.1"3971 resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"3972 integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==39733974pbkdf2@^3.0.17, pbkdf2@^3.0.3:3975 version "3.1.2"3976 resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"3977 integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==3978 dependencies:3979 create-hash "^1.1.2"3980 create-hmac "^1.1.4"3981 ripemd160 "^2.0.1"3982 safe-buffer "^5.0.1"3983 sha.js "^2.4.8"39843985performance-now@^2.1.0:3986 version "2.1.0"3987 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"3988 integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==39893990picocolors@^1.0.0:3991 version "1.0.0"3992 resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"3993 integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==39943995picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:3996 version "2.3.1"3997 resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"3998 integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==39994000pify@^4.0.1:4001 version "4.0.1"4002 resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"4003 integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==40044005pirates@^4.0.5:4006 version "4.0.5"4007 resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"4008 integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==40094010pkg-dir@^3.0.0:4011 version "3.0.0"4012 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"4013 integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==4014 dependencies:4015 find-up "^3.0.0"40164017prelude-ls@^1.2.1:4018 version "1.2.1"4019 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"4020 integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==40214022prettier@^2.3.1:4023 version "2.7.1"4024 resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"4025 integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==40264027process@^0.11.10:4028 version "0.11.10"4029 resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"4030 integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==40314032propagate@^2.0.0:4033 version "2.0.1"4034 resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45"4035 integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==40364037proxy-addr@~2.0.7:4038 version "2.0.7"4039 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"4040 integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==4041 dependencies:4042 forwarded "0.2.0"4043 ipaddr.js "1.9.1"40444045psl@^1.1.28:4046 version "1.9.0"4047 resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"4048 integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==40494050public-encrypt@^4.0.0:4051 version "4.0.3"4052 resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"4053 integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==4054 dependencies:4055 bn.js "^4.1.0"4056 browserify-rsa "^4.0.0"4057 create-hash "^1.1.0"4058 parse-asn1 "^5.0.0"4059 randombytes "^2.0.1"4060 safe-buffer "^5.1.2"40614062pump@^3.0.0:4063 version "3.0.0"4064 resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"4065 integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==4066 dependencies:4067 end-of-stream "^1.1.0"4068 once "^1.3.1"40694070punycode@2.1.0:4071 version "2.1.0"4072 resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d"4073 integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==40744075punycode@^2.1.0, punycode@^2.1.1:4076 version "2.1.1"4077 resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"4078 integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==40794080qs@6.11.0:4081 version "6.11.0"4082 resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"4083 integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==4084 dependencies:4085 side-channel "^1.0.4"40864087qs@~6.5.2:4088 version "6.5.3"4089 resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"4090 integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==40914092query-string@^5.0.1:4093 version "5.1.1"4094 resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"4095 integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==4096 dependencies:4097 decode-uri-component "^0.2.0"4098 object-assign "^4.1.0"4099 strict-uri-encode "^1.0.0"41004101queue-microtask@^1.2.2:4102 version "1.2.3"4103 resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"4104 integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==41054106quick-lru@^5.1.1:4107 version "5.1.1"4108 resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"4109 integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==41104111rambda@^7.1.0:4112 version "7.3.0"4113 resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.3.0.tgz#90e440ead53030a216093865d8d97997a80868ca"4114 integrity sha512-RFVofZYaG2TaVcxjnM0ejdVWf/59rFq1f57OGnjP3GT/bthzFw0GVr5rkP9PKbVlEuF/Y7bOVPLfiiYfxq/EWQ==41154116randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:4117 version "2.1.0"4118 resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"4119 integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==4120 dependencies:4121 safe-buffer "^5.1.0"41224123randomfill@^1.0.3:4124 version "1.0.4"4125 resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"4126 integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==4127 dependencies:4128 randombytes "^2.0.5"4129 safe-buffer "^5.1.0"41304131range-parser@~1.2.1:4132 version "1.2.1"4133 resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"4134 integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==41354136raw-body@2.5.1:4137 version "2.5.1"4138 resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"4139 integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==4140 dependencies:4141 bytes "3.1.2"4142 http-errors "2.0.0"4143 iconv-lite "0.4.24"4144 unpipe "1.0.0"41454146readable-stream@^3.6.0:4147 version "3.6.0"4148 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"4149 integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==4150 dependencies:4151 inherits "^2.0.3"4152 string_decoder "^1.1.1"4153 util-deprecate "^1.0.1"41544155readdirp@~3.6.0:4156 version "3.6.0"4157 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"4158 integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==4159 dependencies:4160 picomatch "^2.2.1"41614162reduce-flatten@^2.0.0:4163 version "2.0.0"4164 resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"4165 integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==41664167regenerator-runtime@^0.13.4:4168 version "0.13.10"4169 resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee"4170 integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==41714172regexp.prototype.flags@^1.4.3:4173 version "1.4.3"4174 resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"4175 integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==4176 dependencies:4177 call-bind "^1.0.2"4178 define-properties "^1.1.3"4179 functions-have-names "^1.2.2"41804181regexpp@^3.2.0:4182 version "3.2.0"4183 resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"4184 integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==41854186request@^2.79.0:4187 version "2.88.2"4188 resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"4189 integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==4190 dependencies:4191 aws-sign2 "~0.7.0"4192 aws4 "^1.8.0"4193 caseless "~0.12.0"4194 combined-stream "~1.0.6"4195 extend "~3.0.2"4196 forever-agent "~0.6.1"4197 form-data "~2.3.2"4198 har-validator "~5.1.3"4199 http-signature "~1.2.0"4200 is-typedarray "~1.0.0"4201 isstream "~0.1.2"4202 json-stringify-safe "~5.0.1"4203 mime-types "~2.1.19"4204 oauth-sign "~0.9.0"4205 performance-now "^2.1.0"4206 qs "~6.5.2"4207 safe-buffer "^5.1.2"4208 tough-cookie "~2.5.0"4209 tunnel-agent "^0.6.0"4210 uuid "^3.3.2"42114212require-directory@^2.1.1:4213 version "2.1.1"4214 resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"4215 integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==42164217resolve-alpn@^1.0.0, resolve-alpn@^1.2.0:4218 version "1.2.1"4219 resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"4220 integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==42214222resolve-from@^4.0.0:4223 version "4.0.0"4224 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"4225 integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==42264227responselike@^2.0.0:4228 version "2.0.1"4229 resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"4230 integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==4231 dependencies:4232 lowercase-keys "^2.0.0"42334234reusify@^1.0.4:4235 version "1.0.4"4236 resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"4237 integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==42384239rimraf@^3.0.2:4240 version "3.0.2"4241 resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"4242 integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==4243 dependencies:4244 glob "^7.1.3"42454246ripemd160@^2.0.0, ripemd160@^2.0.1:4247 version "2.0.2"4248 resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"4249 integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==4250 dependencies:4251 hash-base "^3.0.0"4252 inherits "^2.0.1"42534254rlp@^2.2.4:4255 version "2.2.7"4256 resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf"4257 integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==4258 dependencies:4259 bn.js "^5.2.0"42604261run-parallel@^1.1.9:4262 version "1.2.0"4263 resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"4264 integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==4265 dependencies:4266 queue-microtask "^1.2.2"42674268rxjs@^7.5.7:4269 version "7.5.7"4270 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39"4271 integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==4272 dependencies:4273 tslib "^2.1.0"42744275safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:4276 version "5.2.1"4277 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"4278 integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==42794280safe-buffer@~5.1.0:4281 version "5.1.2"4282 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"4283 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==42844285safe-regex-test@^1.0.0:4286 version "1.0.0"4287 resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"4288 integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==4289 dependencies:4290 call-bind "^1.0.2"4291 get-intrinsic "^1.1.3"4292 is-regex "^1.1.4"42934294"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:4295 version "2.1.2"4296 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"4297 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==42984299scrypt-js@^3.0.0, scrypt-js@^3.0.1:4300 version "3.0.1"4301 resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"4302 integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==43034304secp256k1@^4.0.1:4305 version "4.0.3"4306 resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303"4307 integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==4308 dependencies:4309 elliptic "^6.5.4"4310 node-addon-api "^2.0.0"4311 node-gyp-build "^4.2.0"43124313semver@^5.5.0, semver@^5.6.0:4314 version "5.7.1"4315 resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"4316 integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==43174318semver@^6.3.0:4319 version "6.3.0"4320 resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"4321 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==43224323semver@^7.3.7:4324 version "7.3.8"4325 resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"4326 integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==4327 dependencies:4328 lru-cache "^6.0.0"43294330send@0.18.0:4331 version "0.18.0"4332 resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"4333 integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==4334 dependencies:4335 debug "2.6.9"4336 depd "2.0.0"4337 destroy "1.2.0"4338 encodeurl "~1.0.2"4339 escape-html "~1.0.3"4340 etag "~1.8.1"4341 fresh "0.5.2"4342 http-errors "2.0.0"4343 mime "1.6.0"4344 ms "2.1.3"4345 on-finished "2.4.1"4346 range-parser "~1.2.1"4347 statuses "2.0.1"43484349serialize-javascript@6.0.0:4350 version "6.0.0"4351 resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"4352 integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==4353 dependencies:4354 randombytes "^2.1.0"43554356serve-static@1.15.0:4357 version "1.15.0"4358 resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"4359 integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==4360 dependencies:4361 encodeurl "~1.0.2"4362 escape-html "~1.0.3"4363 parseurl "~1.3.3"4364 send "0.18.0"43654366servify@^0.1.12:4367 version "0.1.12"4368 resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95"4369 integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==4370 dependencies:4371 body-parser "^1.16.0"4372 cors "^2.8.1"4373 express "^4.14.0"4374 request "^2.79.0"4375 xhr "^2.3.3"43764377setimmediate@^1.0.5:4378 version "1.0.5"4379 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"4380 integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==43814382setprototypeof@1.2.0:4383 version "1.2.0"4384 resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"4385 integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==43864387sha.js@^2.4.0, sha.js@^2.4.8:4388 version "2.4.11"4389 resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"4390 integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==4391 dependencies:4392 inherits "^2.0.1"4393 safe-buffer "^5.0.1"43944395shallow-clone@^3.0.0:4396 version "3.0.1"4397 resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"4398 integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==4399 dependencies:4400 kind-of "^6.0.2"44014402shebang-command@^2.0.0:4403 version "2.0.0"4404 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"4405 integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==4406 dependencies:4407 shebang-regex "^3.0.0"44084409shebang-regex@^3.0.0:4410 version "3.0.0"4411 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"4412 integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==44134414side-channel@^1.0.4:4415 version "1.0.4"4416 resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"4417 integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==4418 dependencies:4419 call-bind "^1.0.0"4420 get-intrinsic "^1.0.2"4421 object-inspect "^1.9.0"44224423simple-concat@^1.0.0:4424 version "1.0.1"4425 resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"4426 integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==44274428simple-get@^2.7.0:4429 version "2.8.2"4430 resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019"4431 integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==4432 dependencies:4433 decompress-response "^3.3.0"4434 once "^1.3.1"4435 simple-concat "^1.0.0"44364437slash@^3.0.0:4438 version "3.0.0"4439 resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"4440 integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==44414442solc@0.8.17:4443 version "0.8.17"4444 resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.17.tgz#c748fec6a64bf029ec406aa9b37e75938d1115ae"4445 integrity sha512-Dtidk2XtTTmkB3IKdyeg6wLYopJnBVxdoykN8oP8VY3PQjN16BScYoUJTXFm2OP7P0hXNAqWiJNmmfuELtLf8g==4446 dependencies:4447 command-exists "^1.2.8"4448 commander "^8.1.0"4449 follow-redirects "^1.12.1"4450 js-sha3 "0.8.0"4451 memorystream "^0.3.1"4452 semver "^5.5.0"4453 tmp "0.0.33"44544455source-map-support@^0.5.16:4456 version "0.5.21"4457 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"4458 integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==4459 dependencies:4460 buffer-from "^1.0.0"4461 source-map "^0.6.0"44624463source-map@^0.6.0, source-map@^0.6.1:4464 version "0.6.1"4465 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"4466 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==44674468sshpk@^1.7.0:4469 version "1.17.0"4470 resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"4471 integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==4472 dependencies:4473 asn1 "~0.2.3"4474 assert-plus "^1.0.0"4475 bcrypt-pbkdf "^1.0.0"4476 dashdash "^1.12.0"4477 ecc-jsbn "~0.1.1"4478 getpass "^0.1.1"4479 jsbn "~0.1.0"4480 safer-buffer "^2.0.2"4481 tweetnacl "~0.14.0"44824483statuses@2.0.1:4484 version "2.0.1"4485 resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"4486 integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==44874488strict-uri-encode@^1.0.0:4489 version "1.1.0"4490 resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"4491 integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==44924493string-format@^2.0.0:4494 version "2.0.0"4495 resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b"4496 integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==44974498string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:4499 version "4.2.3"4500 resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"4501 integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==4502 dependencies:4503 emoji-regex "^8.0.0"4504 is-fullwidth-code-point "^3.0.0"4505 strip-ansi "^6.0.1"45064507string.prototype.trimend@^1.0.5:4508 version "1.0.5"4509 resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0"4510 integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==4511 dependencies:4512 call-bind "^1.0.2"4513 define-properties "^1.1.4"4514 es-abstract "^1.19.5"45154516string.prototype.trimstart@^1.0.5:4517 version "1.0.5"4518 resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef"4519 integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==4520 dependencies:4521 call-bind "^1.0.2"4522 define-properties "^1.1.4"4523 es-abstract "^1.19.5"45244525string_decoder@^1.1.1:4526 version "1.3.0"4527 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"4528 integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==4529 dependencies:4530 safe-buffer "~5.2.0"45314532strip-ansi@^6.0.0, strip-ansi@^6.0.1:4533 version "6.0.1"4534 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"4535 integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==4536 dependencies:4537 ansi-regex "^5.0.1"45384539strip-hex-prefix@1.0.0:4540 version "1.0.0"4541 resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f"4542 integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==4543 dependencies:4544 is-hex-prefixed "1.0.0"45454546strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:4547 version "3.1.1"4548 resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"4549 integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==45504551supports-color@8.1.1:4552 version "8.1.1"4553 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"4554 integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==4555 dependencies:4556 has-flag "^4.0.0"45574558supports-color@^5.3.0:4559 version "5.5.0"4560 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"4561 integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==4562 dependencies:4563 has-flag "^3.0.0"45644565supports-color@^7.1.0:4566 version "7.2.0"4567 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"4568 integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==4569 dependencies:4570 has-flag "^4.0.0"45714572swarm-js@^0.1.40:4573 version "0.1.42"4574 resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979"4575 integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==4576 dependencies:4577 bluebird "^3.5.0"4578 buffer "^5.0.5"4579 eth-lib "^0.1.26"4580 fs-extra "^4.0.2"4581 got "^11.8.5"4582 mime-types "^2.1.16"4583 mkdirp-promise "^5.0.1"4584 mock-fs "^4.1.0"4585 setimmediate "^1.0.5"4586 tar "^4.0.2"4587 xhr-request "^1.0.1"45884589table-layout@^1.0.2:4590 version "1.0.2"4591 resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04"4592 integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==4593 dependencies:4594 array-back "^4.0.1"4595 deep-extend "~0.6.0"4596 typical "^5.2.0"4597 wordwrapjs "^4.0.0"45984599tar@^4.0.2:4600 version "4.4.19"4601 resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"4602 integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==4603 dependencies:4604 chownr "^1.1.4"4605 fs-minipass "^1.2.7"4606 minipass "^2.9.0"4607 minizlib "^1.3.3"4608 mkdirp "^0.5.5"4609 safe-buffer "^5.2.1"4610 yallist "^3.1.1"46114612text-table@^0.2.0:4613 version "0.2.0"4614 resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"4615 integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==46164617timed-out@^4.0.1:4618 version "4.0.1"4619 resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"4620 integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==46214622tmp@0.0.33:4623 version "0.0.33"4624 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"4625 integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==4626 dependencies:4627 os-tmpdir "~1.0.2"46284629to-fast-properties@^2.0.0:4630 version "2.0.0"4631 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"4632 integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==46334634to-regex-range@^5.0.1:4635 version "5.0.1"4636 resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"4637 integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==4638 dependencies:4639 is-number "^7.0.0"46404641toidentifier@1.0.1:4642 version "1.0.1"4643 resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"4644 integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==46454646tough-cookie@~2.5.0:4647 version "2.5.0"4648 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"4649 integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==4650 dependencies:4651 psl "^1.1.28"4652 punycode "^2.1.1"46534654tr46@~0.0.3:4655 version "0.0.3"4656 resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"4657 integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==46584659ts-node@^10.9.1:4660 version "10.9.1"4661 resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"4662 integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==4663 dependencies:4664 "@cspotcode/source-map-support" "^0.8.0"4665 "@tsconfig/node10" "^1.0.7"4666 "@tsconfig/node12" "^1.0.7"4667 "@tsconfig/node14" "^1.0.0"4668 "@tsconfig/node16" "^1.0.2"4669 acorn "^8.4.1"4670 acorn-walk "^8.1.1"4671 arg "^4.1.0"4672 create-require "^1.1.0"4673 diff "^4.0.1"4674 make-error "^1.1.1"4675 v8-compile-cache-lib "^3.0.1"4676 yn "3.1.1"46774678tslib@^1.8.1:4679 version "1.14.1"4680 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"4681 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==46824683tslib@^2.1.0:4684 version "2.4.0"4685 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"4686 integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==46874688tsutils@^3.21.0:4689 version "3.21.0"4690 resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"4691 integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==4692 dependencies:4693 tslib "^1.8.1"46944695tunnel-agent@^0.6.0:4696 version "0.6.0"4697 resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"4698 integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==4699 dependencies:4700 safe-buffer "^5.0.1"47014702tweetnacl@1.x.x, tweetnacl@^1.0.3:4703 version "1.0.3"4704 resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"4705 integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==47064707tweetnacl@^0.14.3, tweetnacl@~0.14.0:4708 version "0.14.5"4709 resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"4710 integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==47114712type-check@^0.4.0, type-check@~0.4.0:4713 version "0.4.0"4714 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"4715 integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==4716 dependencies:4717 prelude-ls "^1.2.1"47184719type-detect@^4.0.0, type-detect@^4.0.5:4720 version "4.0.8"4721 resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"4722 integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==47234724type-fest@^0.20.2:4725 version "0.20.2"4726 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"4727 integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==47284729type-is@~1.6.18:4730 version "1.6.18"4731 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"4732 integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==4733 dependencies:4734 media-typer "0.3.0"4735 mime-types "~2.1.24"47364737type@^1.0.1:4738 version "1.2.0"4739 resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"4740 integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==47414742type@^2.7.2:4743 version "2.7.2"4744 resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"4745 integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==47464747typechain@^8.1.0:4748 version "8.1.0"4749 resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.1.0.tgz#fc4902ce596519cb2ccfd012e4ddf92a9945b569"4750 integrity sha512-5jToLgKTjHdI1VKqs/K8BLYy42Sr3o8bV5ojh4MnR9ExHO83cyyUdw+7+vMJCpKXUiVUvARM4qmHTFuyaCMAZQ==4751 dependencies:4752 "@types/prettier" "^2.1.1"4753 debug "^4.3.1"4754 fs-extra "^7.0.0"4755 glob "7.1.7"4756 js-sha3 "^0.8.0"4757 lodash "^4.17.15"4758 mkdirp "^1.0.4"4759 prettier "^2.3.1"4760 ts-command-line-args "^2.2.0"4761 ts-essentials "^7.0.1"47624763typedarray-to-buffer@^3.1.5:4764 version "3.1.5"4765 resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"4766 integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==4767 dependencies:4768 is-typedarray "^1.0.0"47694770typescript@^4.8.4:4771 version "4.8.4"4772 resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"4773 integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==47744775typical@^4.0.0:4776 version "4.0.0"4777 resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"4778 integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==47794780typical@^5.2.0:4781 version "5.2.0"4782 resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"4783 integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==47844785uglify-js@^3.1.4:4786 version "3.17.3"4787 resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.3.tgz#f0feedf019c4510f164099e8d7e72ff2d7304377"4788 integrity sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==47894790ultron@~1.1.0:4791 version "1.1.1"4792 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"4793 integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==47944795unbox-primitive@^1.0.2:4796 version "1.0.2"4797 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"4798 integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==4799 dependencies:4800 call-bind "^1.0.2"4801 has-bigints "^1.0.2"4802 has-symbols "^1.0.3"4803 which-boxed-primitive "^1.0.2"48044805universalify@^0.1.0:4806 version "0.1.2"4807 resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"4808 integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==48094810unpipe@1.0.0, unpipe@~1.0.0:4811 version "1.0.0"4812 resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"4813 integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==48144815update-browserslist-db@^1.0.9:4816 version "1.0.10"4817 resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"4818 integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==4819 dependencies:4820 escalade "^3.1.1"4821 picocolors "^1.0.0"48224823uri-js@^4.2.2:4824 version "4.4.1"4825 resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"4826 integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==4827 dependencies:4828 punycode "^2.1.0"48294830url-set-query@^1.0.0:4831 version "1.0.0"4832 resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339"4833 integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==48344835utf-8-validate@^5.0.2:4836 version "5.0.10"4837 resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2"4838 integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==4839 dependencies:4840 node-gyp-build "^4.3.0"48414842utf8@3.0.0:4843 version "3.0.0"4844 resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1"4845 integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==48464847util-deprecate@^1.0.1:4848 version "1.0.2"4849 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"4850 integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==48514852util@^0.12.0:4853 version "0.12.5"4854 resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"4855 integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==4856 dependencies:4857 inherits "^2.0.3"4858 is-arguments "^1.0.4"4859 is-generator-function "^1.0.7"4860 is-typed-array "^1.1.3"4861 which-typed-array "^1.1.2"48624863utils-merge@1.0.1:4864 version "1.0.1"4865 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"4866 integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==48674868uuid@3.3.2:4869 version "3.3.2"4870 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"4871 integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==48724873uuid@^3.3.2:4874 version "3.4.0"4875 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"4876 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==48774878v8-compile-cache-lib@^3.0.1:4879 version "3.0.1"4880 resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"4881 integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==48824883varint@^5.0.0:4884 version "5.0.2"4885 resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4"4886 integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==48874888vary@^1, vary@~1.1.2:4889 version "1.1.2"4890 resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"4891 integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==48924893verror@1.10.0:4894 version "1.10.0"4895 resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"4896 integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==4897 dependencies:4898 assert-plus "^1.0.0"4899 core-util-is "1.0.2"4900 extsprintf "^1.2.0"49014902web-streams-polyfill@^3.0.3:4903 version "3.2.1"4904 resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"4905 integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==49064907web3-bzz@1.8.0:4908 version "1.8.0"4909 resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.0.tgz#2023676d7c17ea36512bf76eb310755a02a3d464"4910 integrity sha512-caDtdKeLi7+2Vb+y+cq2yyhkNjnxkFzVW0j1DtemarBg3dycG1iEl75CVQMLNO6Wkg+HH9tZtRnUyFIe5LIUeQ==4911 dependencies:4912 "@types/node" "^12.12.6"4913 got "12.1.0"4914 swarm-js "^0.1.40"49154916web3-core-helpers@1.8.0:4917 version "1.8.0"4918 resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.0.tgz#5dcfdda1a4ea277041d912003198f1334ca29d7c"4919 integrity sha512-nMAVwZB3rEp/khHI2BvFy0e/xCryf501p5NGjswmJtEM+Zrd3Biaw52JrB1qAZZIzCA8cmLKaOgdfamoDOpWdw==4920 dependencies:4921 web3-eth-iban "1.8.0"4922 web3-utils "1.8.0"49234924web3-core-method@1.8.0:4925 version "1.8.0"4926 resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.0.tgz#9c2da8896808917d1679c319f19e2174ba17086c"4927 integrity sha512-c94RAzo3gpXwf2rf8rL8C77jOzNWF4mXUoUfZYYsiY35cJFd46jQDPI00CB5+ZbICTiA5mlVzMj4e7jAsTqiLA==4928 dependencies:4929 "@ethersproject/transactions" "^5.6.2"4930 web3-core-helpers "1.8.0"4931 web3-core-promievent "1.8.0"4932 web3-core-subscriptions "1.8.0"4933 web3-utils "1.8.0"49344935web3-core-promievent@1.8.0:4936 version "1.8.0"4937 resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.0.tgz#979765fd4d37ab0f158f0ee54037b279b737bd53"4938 integrity sha512-FGLyjAuOaAQ+ZhV6iuw9tg/9WvIkSZXKHQ4mdTyQ8MxVraOtFivOCbuLLsGgapfHYX+RPxsc1j1YzQjKoupagQ==4939 dependencies:4940 eventemitter3 "4.0.4"49414942web3-core-requestmanager@1.8.0:4943 version "1.8.0"4944 resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.0.tgz#06189df80cf52d24a195a7ef655031afe8192df3"4945 integrity sha512-2AoYCs3Owl5foWcf4uKPONyqFygSl9T54L8b581U16nsUirjhoTUGK/PBhMDVcLCmW4QQmcY5A8oPFpkQc1TTg==4946 dependencies:4947 util "^0.12.0"4948 web3-core-helpers "1.8.0"4949 web3-providers-http "1.8.0"4950 web3-providers-ipc "1.8.0"4951 web3-providers-ws "1.8.0"49524953web3-core-subscriptions@1.8.0:4954 version "1.8.0"4955 resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.0.tgz#ff66ae4467c8cb4716367248bcefb1845c0f8b83"4956 integrity sha512-7lHVRzDdg0+Gcog55lG6Q3D8JV+jN+4Ly6F8cSn9xFUAwOkdbgdWsjknQG7t7CDWy21DQkvdiY2BJF8S68AqOA==4957 dependencies:4958 eventemitter3 "4.0.4"4959 web3-core-helpers "1.8.0"49604961web3-core@1.8.0:4962 version "1.8.0"4963 resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.0.tgz#90afce527ac1b1dff8cbed2acbc0336530b8aacf"4964 integrity sha512-9sCA+Z02ci6zoY2bAquFiDjujRwmSKHiSGi4B8IstML8okSytnzXk1izHYSynE7ahIkguhjWAuXFvX76F5rAbA==4965 dependencies:4966 "@types/bn.js" "^5.1.0"4967 "@types/node" "^12.12.6"4968 bignumber.js "^9.0.0"4969 web3-core-helpers "1.8.0"4970 web3-core-method "1.8.0"4971 web3-core-requestmanager "1.8.0"4972 web3-utils "1.8.0"49734974web3-eth-abi@1.8.0:4975 version "1.8.0"4976 resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.0.tgz#47fdff00bfdfa72064c9c612ff6369986598196d"4977 integrity sha512-xPeMb2hS9YLQK/Q5YZpkcmzoRGM+/R8bogSrYHhNC3hjZSSU0YRH+1ZKK0f9YF4qDZaPMI8tKWIMSCDIpjG6fg==4978 dependencies:4979 "@ethersproject/abi" "^5.6.3"4980 web3-utils "1.8.0"49814982web3-eth-accounts@1.8.0:4983 version "1.8.0"4984 resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.0.tgz#960d947ee87a49d6c706dc6312334fbfbd6ff812"4985 integrity sha512-HQ/MDSv4bexwJLvnqsM6xpGE7c2NVOqyhzOZFyMUKXbIwIq85T3TaLnM9pCN7XqMpDcfxqiZ3q43JqQVkzHdmw==4986 dependencies:4987 "@ethereumjs/common" "^2.5.0"4988 "@ethereumjs/tx" "^3.3.2"4989 crypto-browserify "3.12.0"4990 eth-lib "0.2.8"4991 ethereumjs-util "^7.0.10"4992 scrypt-js "^3.0.1"4993 uuid "3.3.2"4994 web3-core "1.8.0"4995 web3-core-helpers "1.8.0"4996 web3-core-method "1.8.0"4997 web3-utils "1.8.0"49984999web3-eth-contract@1.8.0:5000 version "1.8.0"5001 resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.0.tgz#58f4ce0bde74e5ce87663502e409a92abad7b2c5"5002 integrity sha512-6xeXhW2YoCrz2Ayf2Vm4srWiMOB6LawkvxWJDnUWJ8SMATg4Pgu42C/j8rz/enXbYWt2IKuj0kk8+QszxQbK+Q==5003 dependencies:5004 "@types/bn.js" "^5.1.0"5005 web3-core "1.8.0"5006 web3-core-helpers "1.8.0"5007 web3-core-method "1.8.0"5008 web3-core-promievent "1.8.0"5009 web3-core-subscriptions "1.8.0"5010 web3-eth-abi "1.8.0"5011 web3-utils "1.8.0"50125013web3-eth-ens@1.8.0:5014 version "1.8.0"5015 resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.0.tgz#f1937371eac54b087ebe2e871780c2710d39998d"5016 integrity sha512-/eFbQEwvsMOEiOhw9/iuRXCsPkqAmHHWuFOrThQkozRgcnSTRnvxkkRC/b6koiT5/HaKeUs4yQDg+/ixsIxZxA==5017 dependencies:5018 content-hash "^2.5.2"5019 eth-ens-namehash "2.0.8"5020 web3-core "1.8.0"5021 web3-core-helpers "1.8.0"5022 web3-core-promievent "1.8.0"5023 web3-eth-abi "1.8.0"5024 web3-eth-contract "1.8.0"5025 web3-utils "1.8.0"50265027web3-eth-iban@1.8.0:5028 version "1.8.0"5029 resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.0.tgz#3af8a0c95b5f7b0b81ab0bcd2075c1e5dda31520"5030 integrity sha512-4RbvUxcMpo/e5811sE3a6inJ2H4+FFqUVmlRYs0RaXaxiHweahSRBNcpO0UWgmlePTolj0rXqPT2oEr0DuC8kg==5031 dependencies:5032 bn.js "^5.2.1"5033 web3-utils "1.8.0"50345035web3-eth-personal@1.8.0:5036 version "1.8.0"5037 resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.0.tgz#433c35e2e042844402a12d543c4126ea1494b478"5038 integrity sha512-L7FT4nR3HmsfZyIAhFpEctKkYGOjRC2h6iFKs9gnFCHZga8yLcYcGaYOBIoYtaKom99MuGBoosayWt/Twh7F5A==5039 dependencies:5040 "@types/node" "^12.12.6"5041 web3-core "1.8.0"5042 web3-core-helpers "1.8.0"5043 web3-core-method "1.8.0"5044 web3-net "1.8.0"5045 web3-utils "1.8.0"50465047web3-eth@1.8.0:5048 version "1.8.0"5049 resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.0.tgz#006974a5d5e30644d05814111f9e162a72e4a09c"5050 integrity sha512-hist52os3OT4TQFB/GxPSMxTh3995sz6LPvQpPvj7ktSbpg9RNSFaSsPlCT63wUAHA3PZb1FemkAIeQM5t72Lw==5051 dependencies:5052 web3-core "1.8.0"5053 web3-core-helpers "1.8.0"5054 web3-core-method "1.8.0"5055 web3-core-subscriptions "1.8.0"5056 web3-eth-abi "1.8.0"5057 web3-eth-accounts "1.8.0"5058 web3-eth-contract "1.8.0"5059 web3-eth-ens "1.8.0"5060 web3-eth-iban "1.8.0"5061 web3-eth-personal "1.8.0"5062 web3-net "1.8.0"5063 web3-utils "1.8.0"50645065web3-net@1.8.0:5066 version "1.8.0"5067 resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.0.tgz#9acff92d7c647d801bc68df0ff4416f104dbe789"5068 integrity sha512-kX6EAacK7QrOe7DOh0t5yHS5q2kxZmTCxPVwSz9io9xBeE4n4UhmzGJ/VfhP2eM3OPKYeypcR3LEO6zZ8xn2vw==5069 dependencies:5070 web3-core "1.8.0"5071 web3-core-method "1.8.0"5072 web3-utils "1.8.0"50735074web3-providers-http@1.8.0:5075 version "1.8.0"5076 resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.0.tgz#3fd1e569ead2095343fac17d53160a3bae674c23"5077 integrity sha512-/MqxwRzExohBWW97mqlCSW/+NHydGRyoEDUS1bAIF2YjfKFwyRtHgrEzOojzkC9JvB+8LofMvbXk9CcltpZapw==5078 dependencies:5079 abortcontroller-polyfill "^1.7.3"5080 cross-fetch "^3.1.4"5081 es6-promise "^4.2.8"5082 web3-core-helpers "1.8.0"50835084web3-providers-ipc@1.8.0:5085 version "1.8.0"5086 resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.0.tgz#d339a24c4d764e459e425d3ac868a551ac33e3ea"5087 integrity sha512-tAXHtVXNUOgehaBU8pzAlB3qhjn/PRpjdzEjzHNFqtRRTwzSEKOJxFeEhaUA4FzHnTlbnrs8ujHWUitcp1elfg==5088 dependencies:5089 oboe "2.1.5"5090 web3-core-helpers "1.8.0"50915092web3-providers-ws@1.8.0:5093 version "1.8.0"5094 resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.0.tgz#a0a73e0606981ea32bed40d215000a64753899de"5095 integrity sha512-bcZtSifsqyJxwkfQYamfdIRp4nhj9eJd7cxHg1uUkfLJK125WP96wyJL1xbPt7qt0MpfnTFn8/UuIqIB6nFENg==5096 dependencies:5097 eventemitter3 "4.0.4"5098 web3-core-helpers "1.8.0"5099 websocket "^1.0.32"51005101web3-shh@1.8.0:5102 version "1.8.0"5103 resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.0.tgz#b4abbf4f59d097ce2f74360e61e2e5c0bd6507c7"5104 integrity sha512-DNRgSa9Jf9xYFUGKSMylrf+zt3MPjhI2qF+UWX07o0y3+uf8zalDGiJOWvIS4upAsdPiKKVJ7co+Neof47OMmg==5105 dependencies:5106 web3-core "1.8.0"5107 web3-core-method "1.8.0"5108 web3-core-subscriptions "1.8.0"5109 web3-net "1.8.0"51105111web3-utils@1.8.0:5112 version "1.8.0"5113 resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.0.tgz#0a506f8c6af9a2ad6ba79689892662769534fc03"5114 integrity sha512-7nUIl7UWpLVka2f09CMbKOSEvorvHnaugIabU4mj7zfMvm0tSByLcEu3eyV9qgS11qxxLuOkzBIwCstTflhmpQ==5115 dependencies:5116 bn.js "^5.2.1"5117 ethereum-bloom-filters "^1.0.6"5118 ethereumjs-util "^7.1.0"5119 ethjs-unit "0.1.6"5120 number-to-bn "1.7.0"5121 randombytes "^2.1.0"5122 utf8 "3.0.0"51235124web3@^1.8.0:5125 version "1.8.0"5126 resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.0.tgz#3ca5f0b32de6a1f626407740411219035b5fde64"5127 integrity sha512-sldr9stK/SALSJTgI/8qpnDuBJNMGjVR84hJ+AcdQ+MLBGLMGsCDNubCoyO6qgk1/Y9SQ7ignegOI/7BPLoiDA==5128 dependencies:5129 web3-bzz "1.8.0"5130 web3-core "1.8.0"5131 web3-eth "1.8.0"5132 web3-eth-personal "1.8.0"5133 web3-net "1.8.0"5134 web3-shh "1.8.0"5135 web3-utils "1.8.0"51365137webidl-conversions@^3.0.0:5138 version "3.0.1"5139 resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"5140 integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==51415142websocket@^1.0.32, websocket@^1.0.34:5143 version "1.0.34"5144 resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"5145 integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==5146 dependencies:5147 bufferutil "^4.0.1"5148 debug "^2.2.0"5149 es5-ext "^0.10.50"5150 typedarray-to-buffer "^3.1.5"5151 utf-8-validate "^5.0.2"5152 yaeti "^0.0.6"51535154whatwg-url@^5.0.0:5155 version "5.0.0"5156 resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"5157 integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==5158 dependencies:5159 tr46 "~0.0.3"5160 webidl-conversions "^3.0.0"51615162which-boxed-primitive@^1.0.2:5163 version "1.0.2"5164 resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"5165 integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==5166 dependencies:5167 is-bigint "^1.0.1"5168 is-boolean-object "^1.1.0"5169 is-number-object "^1.0.4"5170 is-string "^1.0.5"5171 is-symbol "^1.0.3"51725173which-typed-array@^1.1.2:5174 version "1.1.8"5175 resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f"5176 integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==5177 dependencies:5178 available-typed-arrays "^1.0.5"5179 call-bind "^1.0.2"5180 es-abstract "^1.20.0"5181 for-each "^0.3.3"5182 has-tostringtag "^1.0.0"5183 is-typed-array "^1.1.9"51845185which@^2.0.1:5186 version "2.0.2"5187 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"5188 integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==5189 dependencies:5190 isexe "^2.0.0"51915192word-wrap@^1.2.3:5193 version "1.2.3"5194 resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"5195 integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==51965197wordwrap@^1.0.0:5198 version "1.0.0"5199 resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"5200 integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==52015202wordwrapjs@^4.0.0:5203 version "4.0.1"5204 resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f"5205 integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==5206 dependencies:5207 reduce-flatten "^2.0.0"5208 typical "^5.2.0"52095210workerpool@6.2.1:5211 version "6.2.1"5212 resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"5213 integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==52145215wrap-ansi@^7.0.0:5216 version "7.0.0"5217 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"5218 integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==5219 dependencies:5220 ansi-styles "^4.0.0"5221 string-width "^4.1.0"5222 strip-ansi "^6.0.0"52235224wrappy@1:5225 version "1.0.2"5226 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"5227 integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==52285229ws@^3.0.0:5230 version "3.3.3"5231 resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"5232 integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==5233 dependencies:5234 async-limiter "~1.0.0"5235 safe-buffer "~5.1.0"5236 ultron "~1.1.0"52375238ws@^8.8.1:5239 version "8.9.0"5240 resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e"5241 integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==52425243xhr-request-promise@^0.1.2:5244 version "0.1.3"5245 resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c"5246 integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==5247 dependencies:5248 xhr-request "^1.1.0"52495250xhr-request@^1.0.1, xhr-request@^1.1.0:5251 version "1.1.0"5252 resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed"5253 integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==5254 dependencies:5255 buffer-to-arraybuffer "^0.0.5"5256 object-assign "^4.1.1"5257 query-string "^5.0.1"5258 simple-get "^2.7.0"5259 timed-out "^4.0.1"5260 url-set-query "^1.0.0"5261 xhr "^2.0.4"52625263xhr@^2.0.4, xhr@^2.3.3:5264 version "2.6.0"5265 resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d"5266 integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==5267 dependencies:5268 global "~4.4.0"5269 is-function "^1.0.1"5270 parse-headers "^2.0.0"5271 xtend "^4.0.0"52725273xtend@^4.0.0:5274 version "4.0.2"5275 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"5276 integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==52775278y18n@^5.0.5:5279 version "5.0.8"5280 resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"5281 integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==52825283yaeti@^0.0.6:5284 version "0.0.6"5285 resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577"5286 integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==52875288yallist@^3.0.0, yallist@^3.1.1:5289 version "3.1.1"5290 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"5291 integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==52925293yallist@^4.0.0:5294 version "4.0.0"5295 resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"5296 integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==52975298yargs-parser@20.2.4:5299 version "20.2.4"5300 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"5301 integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==53025303yargs-parser@^20.2.2:5304 version "20.2.9"5305 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"5306 integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==53075308yargs-parser@^21.0.0:5309 version "21.1.1"5310 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"5311 integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==53125313yargs-unparser@2.0.0:5314 version "2.0.0"5315 resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"5316 integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==5317 dependencies:5318 camelcase "^6.0.0"5319 decamelize "^4.0.0"5320 flat "^5.0.2"5321 is-plain-obj "^2.1.0"53225323yargs@16.2.0:5324 version "16.2.0"5325 resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"5326 integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==5327 dependencies:5328 cliui "^7.0.2"5329 escalade "^3.1.1"5330 get-caller-file "^2.0.5"5331 require-directory "^2.1.1"5332 string-width "^4.2.0"5333 y18n "^5.0.5"5334 yargs-parser "^20.2.2"53355336yargs@^17.6.0:5337 version "17.6.0"5338 resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c"5339 integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==5340 dependencies:5341 cliui "^8.0.1"5342 escalade "^3.1.1"5343 get-caller-file "^2.0.5"5344 require-directory "^2.1.1"5345 string-width "^4.2.3"5346 y18n "^5.0.5"5347 yargs-parser "^21.0.0"53485349yn@3.1.1:5350 version "3.1.1"5351 resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"5352 integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==53535354yocto-queue@^0.1.0:5355 version "0.1.0"5356 resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"5357 integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==