From 37c0f66305543672fae70e7ce35eb5d8c934c666 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 21 Jan 2020 09:31:39 +0000 Subject: [PATCH 01/15] Include network details for deployed contract --- build/contracts/IAKAP.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/build/contracts/IAKAP.json b/build/contracts/IAKAP.json index b05a8ad..56e5fc9 100644 --- a/build/contracts/IAKAP.json +++ b/build/contracts/IAKAP.json @@ -6005,7 +6005,28 @@ "name": "solc", "version": "0.5.12+commit.7709ece9.Emscripten.clang" }, - "networks": {}, + "networks": { + "1": { + "address": "0xaacCAAB0E85b1EfCEcdBA88F4399fa6CAb402349", + "transactionHash": "0x8a1c2b27f7e1d4bfd4793e764337c1c253af79f803a6f113558cabb51c625899" + }, + "3": { + "address": "0xaacCAAB0E85b1EfCEcdBA88F4399fa6CAb402349", + "transactionHash": "0x66308ba90a40d3e29ee6f9cca0ec85f871cd0d383cf340c21e43686014f64aef" + }, + "4": { + "address": "0xaacCAAB0E85b1EfCEcdBA88F4399fa6CAb402349", + "transactionHash": "0x66308ba90a40d3e29ee6f9cca0ec85f871cd0d383cf340c21e43686014f64aef" + }, + "5": { + "address": "0xaacCAAB0E85b1EfCEcdBA88F4399fa6CAb402349", + "transactionHash": "0x66308ba90a40d3e29ee6f9cca0ec85f871cd0d383cf340c21e43686014f64aef" + }, + "42": { + "address": "0xaacCAAB0E85b1EfCEcdBA88F4399fa6CAb402349", + "transactionHash": "0x66308ba90a40d3e29ee6f9cca0ec85f871cd0d383cf340c21e43686014f64aef" + } + }, "schemaVersion": "3.0.19", "updatedAt": "2020-01-18T12:39:58.041Z", "devdoc": { From ebe529fad5cb2263b4666d5005a88ea3b02ef6f9 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 21 Jan 2020 11:20:51 +0000 Subject: [PATCH 02/15] Include deploy test link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e59286..9ab2009 100644 --- a/README.md +++ b/README.md @@ -50,4 +50,5 @@ The solc optimizer was enabled with runs = 200. ## AKAP UI -There's a browser available on [akap.me/browser](https://akap.me/browser), and you can find the repo for this [here](https://github.com/cfelde/AKAP-browser). \ No newline at end of file +There's a browser available on [akap.me/browser](https://akap.me/browser), and you can find the repo for this [here](https://github.com/cfelde/AKAP-browser). +Also, if you want to see how you can get started using AKAP in your web apps, there's a simple [deploy test](https://github.com/cfelde/AKAP-deploy-test) example available. From 3b5a956ed8a82bbedeea27dfe8022c3c50b24186 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Sun, 26 Jan 2020 16:41:18 +0000 Subject: [PATCH 03/15] Update README with example apps. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ab2009..9bcb3be 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,11 @@ macOS Catalina v10.15.2 The solc optimizer was enabled with runs = 200. -## AKAP UI +## AKAP UI and apps There's a browser available on [akap.me/browser](https://akap.me/browser), and you can find the repo for this [here](https://github.com/cfelde/AKAP-browser). Also, if you want to see how you can get started using AKAP in your web apps, there's a simple [deploy test](https://github.com/cfelde/AKAP-deploy-test) example available. + +We're building a list of apps and similar using AKAP. If you have some examples to share, please do. + +[Redir.eth URL shortener](https://redir.eth), with [source code](https://github.com/mohamedelshami/AKAP-url-shortener). \ No newline at end of file From fbec4bfb00f0f1ae91f4b7fb067eb77c7f2388c2 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Wed, 29 Jan 2020 09:09:53 +0000 Subject: [PATCH 04/15] Minor README update for building locally. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bcb3be..93c28a6 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,15 @@ The contract is deployed and is ready for use, see below for details. Please have a read of the [white paper](WHITEPAPER.md). -## Truffle commands +## Building locally with Truffle Assuming you have [Truffle](https://www.trufflesuite.com/) installed you can run the usual commands: +`git clone https://github.com/cfelde/AKAP.git` + +`cd AKAP` + `truffle build` `truffle test` From a80e4cb59f14545a89605e222a5070ad14717000 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Thu, 30 Jan 2020 11:21:42 +0000 Subject: [PATCH 05/15] Include npm details --- README.md | 14 +++++++++++--- package.json | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 package.json diff --git a/README.md b/README.md index 93c28a6..622ea69 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,17 @@ you can run the usual commands: You might need to do: - `npm install @openzeppelin/contracts` +`npm install @openzeppelin/contracts` - `npm install @openzeppelin/test-helpers` +`npm install @openzeppelin/test-helpers` + +## Using as a library + +To use this as a library in your Solidity code, install with npm first: + +`npm install akap` + +You can find an example with further details on https://github.com/cfelde/Using-AKAP ## Official build @@ -59,4 +67,4 @@ Also, if you want to see how you can get started using AKAP in your web apps, th We're building a list of apps and similar using AKAP. If you have some examples to share, please do. -[Redir.eth URL shortener](https://redir.eth), with [source code](https://github.com/mohamedelshami/AKAP-url-shortener). \ No newline at end of file +[Redir.eth URL shortener](https://redir.eth), with [source code](https://github.com/mohamedelshami/AKAP-url-shortener). diff --git a/package.json b/package.json new file mode 100644 index 0000000..c680e07 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "akap", + "version": "1.0.1", + "description": "AKA protocol, the LDAP of Ethereum", + "files": [ + "/contracts/*.sol", + "/build/contracts/*.json" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/cfelde/AKAP.git" + }, + "keywords": [ + "solidity", + "solidity-contracts", + "solidity-dapps", + "ethereum", + "ethereum-contract", + "ethereum-dapp", + "AKAP" + ], + "author": "Christian Felde, Mohamed Elshami", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/cfelde/AKAP/issues" + }, + "homepage": "https://akap.me", + "devDependencies": { + "@openzeppelin/test-helpers": "^0.5.3" + }, + "dependencies": { + "@openzeppelin/contracts": "2.3.0" + } +} From cef0769645821d429b5b6b72724fb1baa83d6191 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Mon, 3 Feb 2020 18:44:04 +0000 Subject: [PATCH 06/15] Configure local development network --- truffle-config.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/truffle-config.js b/truffle-config.js index 938e034..3701443 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -42,11 +42,11 @@ module.exports = { // tab if you use this network and you must also set the `host`, `port` and `network_id` // options below to some value. // - // development: { - // host: "127.0.0.1", // Localhost (default: none) - // port: 8545, // Standard Ethereum port (default: none) - // network_id: "*", // Any network (default: none) - // }, + development: { + host: "127.0.0.1", // Localhost (default: none) + port: 8545, // Standard Ethereum port (default: none) + network_id: "*", // Any network (default: none) + }, // Another network with more advanced options... // advanced: { From e768f999f1855e265f28ed4ae1a482322dfe615a Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 4 Feb 2020 09:02:20 +0000 Subject: [PATCH 07/15] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 622ea69..bdfb42d 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,10 @@ To use this as a library in your Solidity code, install with npm first: `npm install akap` +If you need a local testnet instance of AKAP do: + +`truffle deploy --network development` + You can find an example with further details on https://github.com/cfelde/Using-AKAP ## Official build From f1657f0dab74dfca16d9cd3c8cae1dd43a47e158 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 11 Feb 2020 13:55:23 +0000 Subject: [PATCH 08/15] Fix minor comment typo --- contracts/IAKAP.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/IAKAP.sol b/contracts/IAKAP.sol index 93cbc25..61e5bc9 100644 --- a/contracts/IAKAP.sol +++ b/contracts/IAKAP.sol @@ -57,7 +57,7 @@ contract IAKAP { * If msg.sender is not the owner but is instead approved "spender" of node, the same logic applies. Only on * case 2 and 3 does msg.sender become owner of the node. On case 1 only the expiry is updated. * - * Whenever the return value is non-zero, the expiry of the node as been set to 52 weeks into the future. + * Whenever the return value is non-zero, the expiry of the node has been set to 52 weeks into the future. * * @param parentId Hash value of parent ID * @param label Label of node From 86721a4c15435727297c7704bb566848ad1398da Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 11 Feb 2020 22:33:35 +0000 Subject: [PATCH 09/15] README updates --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 622ea69..2234190 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,20 @@ # AKAP -The AKA protocol is somewhat like LDAP for Ethereum. It allows you to -reference content and data, and also navigate structures in the context -of nodes and a directed acyclic graph. +The [AKA protocol](https://akap.me) (AKAP) is an idea, a specification, and a set of smart contracts written for the Ethereum blockchain. It tackles a challenge seen on blockchains related to immutability and how you write code to handle such an environment. -The contract is deployed and is ready for use, see below for details. +In short the challenge facing blockchain developers is that when they deploy code others depend on, there's no easy upgrade path. The location of the code is tied in with the location of storage, and if you want to upgrade your code you can't easily take this storage with you. Deploying a new version would force everyone who depend on it to change their references, not to mention the pain of repopulating existing data. -Please have a read of the [white paper](WHITEPAPER.md). +Eternal storage is a pattern that AKAP can help you leverage, where the idea is to keep your storage separate from your code. + +Please see the [documentation](https://akap.me/docs) for more in depth material. + +## Repositories + +This repository contains the AKAP registry contract. Other related repositories: + +[AKAP utils](https://github.com/cfelde/AKAP-utils)
+[AKAP docs](https://github.com/cfelde/AKAP-docs)
+[AKAP browser](https://github.com/cfelde/AKAP-browser)
## Building locally with Truffle From ee3dffe5dd79f933a7eef57ebaf6a85911872066 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Thu, 20 Feb 2020 16:13:00 +0000 Subject: [PATCH 10/15] Formatting --- truffle-config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/truffle-config.js b/truffle-config.js index 3701443..17cc3b1 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -43,9 +43,9 @@ module.exports = { // options below to some value. // development: { - host: "127.0.0.1", // Localhost (default: none) - port: 8545, // Standard Ethereum port (default: none) - network_id: "*", // Any network (default: none) + host: "127.0.0.1", // Localhost (default: none) + port: 8545, // Standard Ethereum port (default: none) + network_id: "*", // Any network (default: none) }, // Another network with more advanced options... From a410e6806156b20748c9c897637f0cb5d4304992 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Thu, 20 Feb 2020 16:14:45 +0000 Subject: [PATCH 11/15] Add "Using AKAP" repo link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2479114..20cecef 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ This repository contains the AKAP registry contract. Other related repositories: [AKAP utils](https://github.com/cfelde/AKAP-utils)
[AKAP docs](https://github.com/cfelde/AKAP-docs)
[AKAP browser](https://github.com/cfelde/AKAP-browser)
+[Using AKAP](https://github.com/cfelde/Using-AKAP)
## Building locally with Truffle From 6927cc256279c0756ed912c2958f20fcd74cb92b Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Thu, 20 Feb 2020 16:15:19 +0000 Subject: [PATCH 12/15] NPM publish --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c680e07..19156c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "akap", - "version": "1.0.1", + "version": "1.0.2", "description": "AKA protocol, the LDAP of Ethereum", "files": [ "/contracts/*.sol", From 4bdddfc41ceb144b610b33b0ded857dbaba50081 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 28 Apr 2020 14:22:57 +0100 Subject: [PATCH 13/15] Include Million DAI link --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 20cecef..0e5eca5 100644 --- a/README.md +++ b/README.md @@ -81,3 +81,5 @@ Also, if you want to see how you can get started using AKAP in your web apps, th We're building a list of apps and similar using AKAP. If you have some examples to share, please do. [Redir.eth URL shortener](https://redir.eth), with [source code](https://github.com/mohamedelshami/AKAP-url-shortener). + +[The Million DAI Website](https://milliondai.website) \ No newline at end of file From 8e9cc4d120f32287b652cf5b162147dc198709ea Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Tue, 12 May 2020 11:04:47 +0100 Subject: [PATCH 14/15] Introduce AKAF with v1.1.0 --- README.md | 2 +- build/contracts/AKAF.json | 15839 +++++++++++++++++++++++++++++ contracts/AKAF.sol | 161 + migrations/2_deploy_contracts.js | 2 + package.json | 2 +- test/akaf.js | 341 + test/akaf_events.js | 192 + test/akap.js | 24 + 8 files changed, 16561 insertions(+), 2 deletions(-) create mode 100644 build/contracts/AKAF.json create mode 100644 contracts/AKAF.sol create mode 100644 test/akaf.js create mode 100644 test/akaf_events.js diff --git a/README.md b/README.md index 0e5eca5..cfe7cb1 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Please see the [documentation](https://akap.me/docs) for more in depth material. ## Repositories -This repository contains the AKAP registry contract. Other related repositories: +This repository contains the AKAP and AKAF registry contracts. Other related repositories: [AKAP utils](https://github.com/cfelde/AKAP-utils)
[AKAP docs](https://github.com/cfelde/AKAP-docs)
diff --git a/build/contracts/AKAF.json b/build/contracts/AKAF.json new file mode 100644 index 0000000..ad917ac --- /dev/null +++ b/build/contracts/AKAF.json @@ -0,0 +1,15839 @@ +{ + "contractName": "AKAF", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "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": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IAKAP.NodeAttribute", + "name": "attribute", + "type": "uint8" + } + ], + "name": "AttributeChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "parentId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "label", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "enum IAKAP.ClaimCase", + "name": "claimCase", + "type": "uint8" + } + ], + "name": "Claim", + "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" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "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": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "parentId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "label", + "type": "bytes" + } + ], + "name": "hashOf", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "parentId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "label", + "type": "bytes" + } + ], + "name": "claim", + "outputs": [ + { + "internalType": "uint256", + "name": "status", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "isApprovedOrOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "parentOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "expiryOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "seeAlso", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "seeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "nodeBody", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + } + ], + "name": "expireNode", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "setSeeAlso", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "value", + "type": "address" + } + ], + "name": "setSeeAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "value", + "type": "bytes" + } + ], + "name": "setNodeBody", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "uri", + "type": "string" + } + ], + "name": "setTokenURI", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.NodeAttribute\",\"name\":\"attribute\",\"type\":\"uint8\"}],\"name\":\"AttributeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.ClaimCase\",\"name\":\"claimCase\",\"type\":\"uint8\"}],\"name\":\"Claim\",\"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\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expireNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expiryOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"hashOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"nodeBody\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"parentOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAlso\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setNodeBody\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setSeeAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setSeeAlso\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.\",\"params\":{\"to\":\"address to be approved for the given token ID\",\"tokenId\":\"uint256 ID of the token to be approved\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"address to query the balance of\"},\"return\":\"uint256 representing the amount owned by the passed address\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the approval of\"},\"return\":\"address currently approved for the given token ID\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner.\",\"params\":{\"operator\":\"operator address which you want to query the approval of\",\"owner\":\"owner address which you want to query the approval of\"},\"return\":\"bool whether the given operator is approved by the given owner\"},\"name()\":{\"details\":\"Gets the token name.\",\"return\":\"string representing the token name\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the owner of\"},\"return\":\"address currently marked as the owner of the given token ID\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\",\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.\",\"params\":{\"approved\":\"representing the status of the approval to be set\",\"to\":\"operator address to set the approval\"}},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Gets the token symbol.\",\"return\":\"string representing the token symbol\"},\"tokenByIndex(uint256)\":{\"details\":\"Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the tokens list\"},\"return\":\"uint256 token ID at the given index of the tokens list\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Gets the token ID at a given index of the tokens list of the requested owner.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the requested tokens list\",\"owner\":\"address owning the tokens list to be accessed\"},\"return\":\"uint256 token ID at the given index of the tokens list owned by the requested address\"},\"tokenURI(uint256)\":{\"details\":\"Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query\"}},\"totalSupply()\":{\"details\":\"Gets the total amount of tokens stored by the contract.\",\"return\":\"uint256 representing the total amount of tokens\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":\"AKAF\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":{\"keccak256\":\"0xccf25695c05e171710ff23fcf8c92e51ed30ef8df2e01a546eae1200d0a69a40\",\"urls\":[\"bzz-raw://eaeb36df9e6b23870d3f6804cb7f95546d276ab7ad3211cb81c59ec59cadd795\",\"dweb:/ipfs/QmSKrLHtEiUhCNyzcGZHs2yjfLDNRrUxP3yJfHF1Z9R4Na\"]},\"/private/tmp/eth/akap/contracts/IAKAP.sol\":{\"keccak256\":\"0x2163f1519406e467ca39601ce7dfed73d104b3da8bdd0146bd6ca2d14388276a\",\"urls\":[\"bzz-raw://2e4395653541d8e0a6a5bad617a3b7af3efcd8fdea988edf4c7644aabbb8e6b0\",\"dweb:/ipfs/QmPDi6uqVTLCp1v725r2qfC5GNsiGCwbMCpZWSjc34u1Ek\"]},\"@openzeppelin/contracts/drafts/Counters.sol\":{\"keccak256\":\"0x5eb69360d3441ab2ee799bd7c007cccbffb0896f12b2dfe1456193e2aa180a11\",\"urls\":[\"bzz-raw://072e8b5a1b5acfc2acba9b6fb87d1dc57065aad44572617ad46b014074969eb3\",\"dweb:/ipfs/QmVTDHUriaxBJqiWCWgWC8vYaYYfXSz883LsowzTx1DcpK\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xac2eacd7e7762e275442f28f21d821544df5aae2ed7698af13be8c41b7005e2e\",\"urls\":[\"bzz-raw://8bdbefb642e7b08535c66bbf074e576cfef2300cdf910c1e0b211f6393833a28\",\"dweb:/ipfs/QmQhfx2Ufr8a2gFXm3KogL66xGgAuAWMwcamkWFKGG6Vya\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzz-raw://b40442c5b350b57b88a081a1eacd2bac962d4ecc1f029f5447a18986f08f6f14\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xd1804d04fb39689453f673601429a99a0c68c422a981fc338773df9a59180fe9\",\"urls\":[\"bzz-raw://1b9307920e0378d58c6677f8952ad090a9ecb30e878835e301a0d18386a870c1\",\"dweb:/ipfs/QmYYixTDVF4FXqFpYzEcufAwEY9BFBJ33Ew9ncsGvD7btC\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf151df411bbf4eaef1fc8e8480cd10c2cd985f1a36517e63981517610213efc1\",\"urls\":[\"bzz-raw://2a277b3cc3a1a03af5c039bc75cd16bb2d23b529cb2564cc0bea1b1e0eb4dd68\",\"dweb:/ipfs/QmNRxggY8qmjjuLnxggRqE8uBueuCktLwi9YYHagWoaEJ8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\":{\"keccak256\":\"0xb42cb5a7471d98114af8f7050e7d08dfd543f432713a8aee72a45ce9485f5bed\",\"urls\":[\"bzz-raw://324b8d35f37d91fd863130a6e4b83d55b8b95264af011a008ec03e084ac91b75\",\"dweb:/ipfs/QmWY61QSSJPkgDb2WZR1unTfuSrd5jBp2tC7RrCrQxC9CL\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\":{\"keccak256\":\"0x908d0d6fd8d30cffb1fe9fce1f7db6802cb885fbe88d2f170539e8dcc6afa946\",\"urls\":[\"bzz-raw://ed5f7883e2a50b3efeaae764c77152bef9d3d9965832ef095c94e79c2e887257\",\"dweb:/ipfs/QmaLRQ1ziLAo18gvM2EbKhvHC3ys4333mTxCFfoEJ8AodY\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\":{\"keccak256\":\"0xe5e28b1a405164faa98f8ecd8ed2b00907b89e3d58b2b2bb8ac8b12bc5714489\",\"urls\":[\"bzz-raw://0d5d3f0caa7e7ec91f8a2894e1a6a3513a0c79aa91a498ebf8fdbdd07c12286f\",\"dweb:/ipfs/QmP7r4jQMRxXb5JHy5V9bgMz5FmTezcSDd7ivyzJN88pTR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xce48937a8007c580b8e2e35705738c922dd17540de89ebee6df06d2917a3f9fc\",\"urls\":[\"bzz-raw://1d117265103ee3efcd454d3aafb3e79a115f9bca6dec78a1229558eb30d14d05\",\"dweb:/ipfs/QmTm5Z1c7zzPiG3Cfj1eBMB23AeiEFGgvmTFQVaeEWXVCw\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x5c573acd6c7b98d71f3c1c44d63dc17400b0fd7b26a52c9fded43b8b533dc4ec\",\"urls\":[\"bzz-raw://e23af54444d2dbfae58895339eb7b189e1ba5d0b7abde63716e7ef7da23b2fde\",\"dweb:/ipfs/QmZva7dE1SMd1yyizzc6ivSoBXXwpNveLV7iFNATNpq68Y\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x2b2b99dc7fe8fcd1f9427d00822b99cbc683dc21f5dd7532bd7e2281fd2c2ca2\",\"urls\":[\"bzz-raw://a8024c00e34efaf328f9592e76823c79f25fa0f6006bdf4a1e7fea204afd4773\",\"dweb:/ipfs/QmZns9jTr7843njq3J2iL2LLoWXK5mdzN1bDGd9GL3ahhD\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xadbfb7028fb0f851dc848a48b9e54e7c89ffd2c2edc12fa4ba9bb383dfaa83d9\",\"urls\":[\"bzz-raw://90dceab42713246639100b87d6650037d68e4a2ab2dd4b5768c3ed35d6b3a4a0\",\"dweb:/ipfs/QmQ42UW5nchMoYP9bU9F1AJga5chG8j92fCPkURpiDKsCu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzz-raw://75ae8d04454d1511a2ed986cc8585736f05c5c25280683b3d24712a9f414a4bf\",\"dweb:/ipfs/Qmb3kNCoBUZdah1AgBBD4zMk898j5Qw8ahT1w5cCMYp5Y3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252601481527f414b4120466f72657665722052656769737472790000000000000000000000006020808301919091528251808401909352600483526320a5a0a360e11b908301529081816200007f6301ffc9a760e01b6001600160e01b03620001c316565b6200009a6380ac58cd60e01b6001600160e01b03620001c316565b620000b563780e9d6360e01b6001600160e01b03620001c316565b8151620000ca90600990602085019062000482565b508051620000e090600a90602084019062000482565b50620000fc635b5e139f60e01b6001600160e01b03620001c316565b50600092506200012c91506200011c90506001600160e01b036200024816565b826001600160e01b036200024d16565b6000818152600c602052604090206000196001909101558080620001586001600160e01b036200024816565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e600160405180806020018360028111156200019957fe5b60ff1681526020018281038252600081526020016020019250505060405180910390a45062000524565b6001600160e01b0319808216141562000223576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b335b90565b6200026482826200029160201b62001f6e1760201c565b6200027982826001600160e01b03620003da16565b6200028d816001600160e01b036200041816565b5050565b6001600160a01b038216620002ed576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b62000301816001600160e01b036200045c16565b1562000354576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600382529091206200039e9162000479811b6200213d17901c565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b6000908152600160205260409020546001600160a01b0316151590565b80546001019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c557805160ff1916838001178555620004f5565b82800160010185558215620004f5579182015b82811115620004f5578251825591602001919060010190620004d8565b506200050392915062000507565b5090565b6200024a91905b808211156200050357600081556001016200050e565b6125dd80620005346000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b7b565b610398610c5e565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c64565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cb9565b6102226004803603602081101561042257600080fd5b5035610d38565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e22565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b03166111e3565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112af565b6102066004803603602081101561051657600080fd5b50356112ca565b6103986004803603602081101561053357600080fd5b50356112db565b6102066004803603602081101561055057600080fd5b5035611341565b6102b46004803603602081101561056d57600080fd5b5035611354565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113a8565b610398600480360360208110156105b057600080fd5b5035611410565b6102fc600480360360408110156105cd57600080fd5b508035906020013561146e565b61022261150c565b6102fc600480360360408110156105f857600080fd5b506001600160a01b038135169060200135151561156d565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b509092509050611639565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116e0945050505050565b6102b46004803603602081101561075f57600080fd5b5035611738565b6103986004803603602081101561077c57600080fd5b503561179f565b6102226004803603602081101561079957600080fd5b50356117fd565b610398600480360360208110156107b657600080fd5b50356118e2565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061193d945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611a32565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611a60565b6109925760405162461bcd60e51b815260040180806020018281038252602c815260200180612432602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611354565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b815260040180806020018281038252602181526020018061252b6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611a32565b610a635760405162461bcd60e51b81526004018080602001828103825260388152602001806123a76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611a60565b8015610ae15750610ae1610adb611a7d565b82611a81565b610b1c5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b3a611a7d565b6001600160a01b03166000805160206124b3833981519152600060405180826004811115610b6457fe5b60ff16815260200191505060405180910390a35050565b82610b8581611a60565b8015610b975750610b97610adb611a7d565b610bd25760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b610c128484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1d92505050565b83610c1b611a7d565b6001600160a01b03166000805160206124b3833981519152600460405180826004811115610c4557fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c6e3382611a81565b610ca95760405162461bcd60e51b815260040180806020018281038252603181526020018061254c6031913960400191505060405180910390fd5b610cb4838383611b80565b505050565b6000610cc4836113a8565b8210610d015760405162461bcd60e51b815260040180806020018281038252602b8152602001806122ca602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d2557fe5b9060005260206000200154905092915050565b606081610d4481611a60565b610d7f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b5050505050915050919050565b600080610e658585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061193d92505050565b90506000610e7a610e74611a7d565b87611a81565b90506000610e8783611a60565b9050808015610ea25750610ea2610e9c611a7d565b84611a81565b15610fb2576000838152600c60205260409020548714610f05576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f26611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f6857fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600193505050506111dc565b80158015610fbd5750815b1561108357610fd3610fcd611a7d565b84611b9f565b6000838152600c602052604090208781556000196001909101558683610ff7611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561103957fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600293505050506111dc565b8080156110a157506000838152600c60205260409020600101544210155b80156110aa5750815b156111d4576000838152600c6020526040902054871461110d576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61112761111984611354565b611121611a7d565b85611b80565b6000838152600c602052604090206000196001909101558683611148611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896002604051808060200183600281111561118a57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600393505050506111dc565b600093505050505b9392505050565b816111ed81611a60565b80156111ff57506111ff610adb611a7d565b61123a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261126d611a7d565b6001600160a01b03166000805160206124b383398151915260026040518082600481111561129757fe5b60ff16815260200191505060405180910390a3505050565b610cb4838383604051806020016040528060008152506116e0565b60006112d582611a60565b92915050565b60006112e5610c5e565b82106113225760405162461bcd60e51b815260040180806020018281038252602c81526020018061257d602c913960400191505060405180910390fd5b6007828154811061132f57fe5b90600052602060002001549050919050565b60006112d561134e611a7d565b83611a81565b6000818152600160205260408120546001600160a01b0316806112d55760405162461bcd60e51b81526004018080602001828103825260298152602001806124096029913960400191505060405180910390fd5b60006001600160a01b0382166113ef5760405162461bcd60e51b815260040180806020018281038252602a8152602001806123df602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206112d590611bc0565b60008161141c81611a60565b6114575760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b8161147881611a60565b801561148a575061148a610adb611a7d565b6114c55760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c60205260409020600201829055826114e2611a7d565b6001600160a01b03166000805160206124b383398151915260016040518082600481111561129757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b0382163314156115cb576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261164381611a60565b80156116555750611655610adb611a7d565b6116905760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000848152600c602052604090206116ac9060040184846121a3565b50836116b6611a7d565b6001600160a01b03166000805160206124b3833981519152600360405180826004811115610c4557fe5b6116eb848484610c64565b6116f784848484611bc4565b6117325760405162461bcd60e51b81526004018080602001828103825260328152602001806122f56032913960400191505060405180910390fd5b50505050565b60008161174481611a60565b61177f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b6000816117ab81611a60565b6117e65760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061180882611a60565b6118435760405162461bcd60e51b815260040180806020018281038252602f8152602001806124d3602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156118d65780601f106118ab576101008083540402835291602001916118d6565b820191906000526020600020905b8154815290600101906020018083116118b957829003601f168201915b50505050509050919050565b6000816118ee81611a60565b6119295760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b6000600182511015801561195357506020825111155b6119a4576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611a2a576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611a8c82611a60565b611ac75760405162461bcd60e51b815260040180806020018281038252602c81526020018061237b602c913960400191505060405180910390fd5b6000611ad283611354565b9050806001600160a01b0316846001600160a01b03161480611b0d5750836001600160a01b0316611b028461094c565b6001600160a01b0316145b80611a2a5750611a2a8185611a32565b611b2682611a60565b611b615760405162461bcd60e51b815260040180806020018281038252602c81526020018061245e602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610cb492840190612221565b611b8b838383611cf7565b611b958382611e3b565b610cb48282611f30565b611ba98282611f6e565b611bb38282611f30565b611bbc8161209f565b5050565b5490565b6000611bd8846001600160a01b03166120e3565b611be457506001611a2a565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611cad57600080fd5b505af1158015611cc1573d6000803e3d6000fd5b505050506040513d6020811015611cd757600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d0a82611354565b6001600160a01b031614611d4f5760405162461bcd60e51b815260040180806020018281038252602981526020018061248a6029913960400191505060405180910390fd5b6001600160a01b038216611d945760405162461bcd60e51b81526004018080602001828103825260248152602001806123576024913960400191505060405180910390fd5b611d9d816120e9565b6001600160a01b0383166000908152600360205260409020611dbe90612126565b6001600160a01b0382166000908152600360205260409020611ddf9061213d565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611e6590600163ffffffff61214616565b600083815260066020526040902054909150808214611f00576001600160a01b0384166000908152600560205260408120805484908110611ea257fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611ee057fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611f2990600019830161228f565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b038216611fc9576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611fd281611a60565b15612024576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120639061213d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b03161561212357600081815260026020526040902080546001600160a01b03191690555b50565b805461213990600163ffffffff61214616565b9055565b80546001019055565b60008282111561219d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121e45782800160ff19823516178555612211565b82800160010185558215612211579182015b828111156122115782358255916020019190600101906121f6565b5061221d9291506122af565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226257805160ff1916838001178555612211565b82800160010185558215612211579182015b82811115612211578251825591602001919060010190612274565b815481835581811115610cb457600083815260209020610cb49181019083015b61094991905b8082111561221d57600081556001016122b556fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a723158207fdec2ead15da3a47a6194c8e8bf8e2b17f464aa3e3a6b7a39c1d49a3bb55f9464736f6c63430005100032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b7b565b610398610c5e565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c64565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cb9565b6102226004803603602081101561042257600080fd5b5035610d38565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e22565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b03166111e3565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112af565b6102066004803603602081101561051657600080fd5b50356112ca565b6103986004803603602081101561053357600080fd5b50356112db565b6102066004803603602081101561055057600080fd5b5035611341565b6102b46004803603602081101561056d57600080fd5b5035611354565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113a8565b610398600480360360208110156105b057600080fd5b5035611410565b6102fc600480360360408110156105cd57600080fd5b508035906020013561146e565b61022261150c565b6102fc600480360360408110156105f857600080fd5b506001600160a01b038135169060200135151561156d565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b509092509050611639565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116e0945050505050565b6102b46004803603602081101561075f57600080fd5b5035611738565b6103986004803603602081101561077c57600080fd5b503561179f565b6102226004803603602081101561079957600080fd5b50356117fd565b610398600480360360208110156107b657600080fd5b50356118e2565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061193d945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611a32565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611a60565b6109925760405162461bcd60e51b815260040180806020018281038252602c815260200180612432602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611354565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b815260040180806020018281038252602181526020018061252b6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611a32565b610a635760405162461bcd60e51b81526004018080602001828103825260388152602001806123a76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611a60565b8015610ae15750610ae1610adb611a7d565b82611a81565b610b1c5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b3a611a7d565b6001600160a01b03166000805160206124b3833981519152600060405180826004811115610b6457fe5b60ff16815260200191505060405180910390a35050565b82610b8581611a60565b8015610b975750610b97610adb611a7d565b610bd25760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b610c128484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1d92505050565b83610c1b611a7d565b6001600160a01b03166000805160206124b3833981519152600460405180826004811115610c4557fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c6e3382611a81565b610ca95760405162461bcd60e51b815260040180806020018281038252603181526020018061254c6031913960400191505060405180910390fd5b610cb4838383611b80565b505050565b6000610cc4836113a8565b8210610d015760405162461bcd60e51b815260040180806020018281038252602b8152602001806122ca602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d2557fe5b9060005260206000200154905092915050565b606081610d4481611a60565b610d7f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b5050505050915050919050565b600080610e658585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061193d92505050565b90506000610e7a610e74611a7d565b87611a81565b90506000610e8783611a60565b9050808015610ea25750610ea2610e9c611a7d565b84611a81565b15610fb2576000838152600c60205260409020548714610f05576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f26611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f6857fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600193505050506111dc565b80158015610fbd5750815b1561108357610fd3610fcd611a7d565b84611b9f565b6000838152600c602052604090208781556000196001909101558683610ff7611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561103957fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600293505050506111dc565b8080156110a157506000838152600c60205260409020600101544210155b80156110aa5750815b156111d4576000838152600c6020526040902054871461110d576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61112761111984611354565b611121611a7d565b85611b80565b6000838152600c602052604090206000196001909101558683611148611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896002604051808060200183600281111561118a57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600393505050506111dc565b600093505050505b9392505050565b816111ed81611a60565b80156111ff57506111ff610adb611a7d565b61123a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261126d611a7d565b6001600160a01b03166000805160206124b383398151915260026040518082600481111561129757fe5b60ff16815260200191505060405180910390a3505050565b610cb4838383604051806020016040528060008152506116e0565b60006112d582611a60565b92915050565b60006112e5610c5e565b82106113225760405162461bcd60e51b815260040180806020018281038252602c81526020018061257d602c913960400191505060405180910390fd5b6007828154811061132f57fe5b90600052602060002001549050919050565b60006112d561134e611a7d565b83611a81565b6000818152600160205260408120546001600160a01b0316806112d55760405162461bcd60e51b81526004018080602001828103825260298152602001806124096029913960400191505060405180910390fd5b60006001600160a01b0382166113ef5760405162461bcd60e51b815260040180806020018281038252602a8152602001806123df602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206112d590611bc0565b60008161141c81611a60565b6114575760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b8161147881611a60565b801561148a575061148a610adb611a7d565b6114c55760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c60205260409020600201829055826114e2611a7d565b6001600160a01b03166000805160206124b383398151915260016040518082600481111561129757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b0382163314156115cb576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261164381611a60565b80156116555750611655610adb611a7d565b6116905760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000848152600c602052604090206116ac9060040184846121a3565b50836116b6611a7d565b6001600160a01b03166000805160206124b3833981519152600360405180826004811115610c4557fe5b6116eb848484610c64565b6116f784848484611bc4565b6117325760405162461bcd60e51b81526004018080602001828103825260328152602001806122f56032913960400191505060405180910390fd5b50505050565b60008161174481611a60565b61177f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b6000816117ab81611a60565b6117e65760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061180882611a60565b6118435760405162461bcd60e51b815260040180806020018281038252602f8152602001806124d3602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156118d65780601f106118ab576101008083540402835291602001916118d6565b820191906000526020600020905b8154815290600101906020018083116118b957829003601f168201915b50505050509050919050565b6000816118ee81611a60565b6119295760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b6000600182511015801561195357506020825111155b6119a4576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611a2a576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611a8c82611a60565b611ac75760405162461bcd60e51b815260040180806020018281038252602c81526020018061237b602c913960400191505060405180910390fd5b6000611ad283611354565b9050806001600160a01b0316846001600160a01b03161480611b0d5750836001600160a01b0316611b028461094c565b6001600160a01b0316145b80611a2a5750611a2a8185611a32565b611b2682611a60565b611b615760405162461bcd60e51b815260040180806020018281038252602c81526020018061245e602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610cb492840190612221565b611b8b838383611cf7565b611b958382611e3b565b610cb48282611f30565b611ba98282611f6e565b611bb38282611f30565b611bbc8161209f565b5050565b5490565b6000611bd8846001600160a01b03166120e3565b611be457506001611a2a565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611cad57600080fd5b505af1158015611cc1573d6000803e3d6000fd5b505050506040513d6020811015611cd757600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d0a82611354565b6001600160a01b031614611d4f5760405162461bcd60e51b815260040180806020018281038252602981526020018061248a6029913960400191505060405180910390fd5b6001600160a01b038216611d945760405162461bcd60e51b81526004018080602001828103825260248152602001806123576024913960400191505060405180910390fd5b611d9d816120e9565b6001600160a01b0383166000908152600360205260409020611dbe90612126565b6001600160a01b0382166000908152600360205260409020611ddf9061213d565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611e6590600163ffffffff61214616565b600083815260066020526040902054909150808214611f00576001600160a01b0384166000908152600560205260408120805484908110611ea257fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611ee057fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611f2990600019830161228f565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b038216611fc9576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611fd281611a60565b15612024576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120639061213d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b03161561212357600081815260026020526040902080546001600160a01b03191690555b50565b805461213990600163ffffffff61214616565b9055565b80546001019055565b60008282111561219d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121e45782800160ff19823516178555612211565b82800160010185558215612211579182015b828111156122115782358255916020019190600101906121f6565b5061221d9291506122af565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226257805160ff1916838001178555612211565b82800160010185558215612211579182015b82811115612211578251825591602001919060010190612274565b815481835581811115610cb457600083815260209020610cb49181019083015b61094991905b8082111561221d57600081556001016122b556fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a723158207fdec2ead15da3a47a6194c8e8bf8e2b17f464aa3e3a6b7a39c1d49a3bb55f9464736f6c63430005100032", + "sourceMap": "737:5113:2:-;;;963:316;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;452:155:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;452:155:12;;;;;;;718:40:7;-1:-1:-1;;;;;;;;718:18:7;:40;:::i;:::-;2220::10;-1:-1:-1;;;;;;;;2220:18:10;:40;:::i;:::-;1316:51:11;-1:-1:-1;;;;;;;;1316:18:11;:51;:::i;:::-;825:12:13;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;847:16:13;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;951:49:13;-1:-1:-1;;;;;;;;951:18:13;:49;:::i;:::-;-1:-1:-1;1110:11:2;;-1:-1:-1;1135:27:2;;-1:-1:-1;1141:12:2;;-1:-1:-1;;;;;;1141:10:2;:12;:::i;:::-;1155:6;-1:-1:-1;;;;;1135:5:2;:27;:::i;:::-;1172:13;;;;:5;:13;;;;;-1:-1:-1;;1172:20:2;;;;:31;1178:6;;1224:12;-1:-1:-1;;;;;1224:10:2;:12;:::i;:::-;-1:-1:-1;;;;;1218:54:2;;1258:13;1218:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;963:316;737:5113;;1442:190:7;-1:-1:-1;;;;;;1517:25:7;;;;;1509:66;;;;;-1:-1:-1;;;1509:66:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1585:33:7;:20;:33;;;;;;;;;;:40;;-1:-1:-1;;1585:40:7;1621:4;1585:40;;;1442:190::o;1285:96:2:-;1364:10;1285:96;;:::o;3629:196:11:-;3692:24;3704:2;3708:7;3692:11;;;;;:24;;:::i;:::-;3727:40;3755:2;3759:7;-1:-1:-1;;;;;3727:27:11;:40;:::i;:::-;3778;3810:7;-1:-1:-1;;;;;3778:31:11;:40;:::i;:::-;3629:196;;:::o;9179:327:10:-;-1:-1:-1;;;;;9250:16:10;;9242:61;;;;;-1:-1:-1;;;9242:61:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;-1:-1:-1;;;;;9322:7:10;:16;:::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:10;-1:-1:-1;;;;;9382:25:10;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;;;;;:33;;:::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:10;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5087:183:11:-;-1:-1:-1;;;;;5200:16:11;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:11;;;;;;;;5087:183::o;5465:161::-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:11;;;;;;;5465:161::o;8092:152:10:-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:10;8218:19;;;8092:152::o;1181:89:6:-;1244:19;;1262:1;1244:19;;;1181:89::o;737:5113:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5113:2;;;-1:-1:-1;737:5113:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "737:5113:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;737:5113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:133:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;915:133:7;-1:-1:-1;;;;;;915:133:7;;:::i;:::-;;;;;;;;;;;;;;;;;;1112:83:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1112:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4237:200:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4237:200:10;;:::i;:::-;;;;-1:-1:-1;;;;;4237:200:10;;;;;;;;;;;;;;3541:411;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3541:411:10;;;;;;;;:::i;:::-;;4819:181:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4819:181:2;;:::i;5643:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5643:205:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5643:205:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5643:205:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5643:205:2;;-1:-1:-1;5643:205:2;-1:-1:-1;5643:205:2;:::i;2130:94:11:-;;;:::i;:::-;;;;;;;;;;;;;;;;5877:285:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5877:285:10;;;;;;;;;;;;;;;;;:::i;1748:229:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1748:229:11;;;;;;;;:::i;4678:135:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4678:135:2;;:::i;2101:1794::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2101:1794:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2101:1794:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2101:1794:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;2101:1794:2;;-1:-1:-1;2101:1794:2;-1:-1:-1;2101:1794:2;:::i;5210:210::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5210:210:2;;;;;;-1:-1:-1;;;;;5210:210:2;;:::i;6795:132:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6795:132:10;;;;;;;;;;;;;;;;;:::i;3901:97:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3901:97:2;;:::i;2562:196:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2562:196:11;;:::i;4004:133:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4004:133:2;;:::i;2897:223:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2897:223:10;;:::i;2471:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2471:207:10;-1:-1:-1;;;;;2471:207:10;;:::i;4407:125:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4407:125:2;;:::i;5006:198::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5006:198:2;;;;;;;:::i;1304:87:13:-;;;:::i;4730:243:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4730:243:10;;;;;;;;;;:::i;5426:211:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5426:211:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5426:211:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5426:211:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5426:211:2;;-1:-1:-1;5426:211:2;-1:-1:-1;5426:211:2;:::i;7632:265:10:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;7632:265:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7632:265:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7632:265:10;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7632:265:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7632:265:10;;-1:-1:-1;7632:265:10;;-1:-1:-1;;;;;7632:265:10:i;4538:134:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4538:134:2;;:::i;4276:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4276:125:2;;:::i;1591:202:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1591:202:13;;:::i;4143:127:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4143:127:2;;:::i;1716:379::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1716:379:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1716:379:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1716:379:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1716:379:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1716:379:2;;-1:-1:-1;1716:379:2;;-1:-1:-1;;;;;1716:379:2:i;5295:145:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5295:145:10;;;;;;;;;;:::i;915:133:7:-;-1:-1:-1;;;;;;1008:33:7;985:4;1008:33;;;;;;;;;;;;;;915:133::o;1112:83:13:-;1183:5;1176:12;;;;;;;;-1:-1:-1;;1176:12:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:13;;1176:12;;1183:5;;1176:12;;1183:5;1176:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:83;;:::o;4237:200:10:-;4296:7;4323:16;4331:7;4323;:16::i;:::-;4315:73;;;;-1:-1:-1;;;4315:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4406:24:10;;;;:15;:24;;;;;;-1:-1:-1;;;;;4406:24:10;;4237:200::o;3541:411::-;3604:13;3620:16;3628:7;3620;:16::i;:::-;3604:32;;3660:5;-1:-1:-1;;;;;3654:11:10;:2;-1:-1:-1;;;;;3654:11:10;;;3646:57;;;;-1:-1:-1;;;3646:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3722:10;-1:-1:-1;;;;;3722:19:10;;;;:58;;;3745:35;3762:5;3769:10;3745:16;:35::i;:::-;3714:148;;;;-1:-1:-1;;;3714:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3873:24;;;;:15;:24;;;;;;:29;;-1:-1:-1;;;;;;3873:29:10;-1:-1:-1;;;;;3873:29:10;;;;;;;;;3917:28;;3873:24;;3917:28;;;;;;;3541:411;;;:::o;4819:181:2:-;4874:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;:::-;1631:6;1598:18;:40::i;:::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4892:13;;;;:5;:13;;;;;4915:3;4892:20;;;;:26;4898:6;4950:12;:10;:12::i;:::-;-1:-1:-1;;;;;4933:60:2;-1:-1:-1;;;;;;;;;;;4972:20:2;4933:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:181;;:::o;5643:205::-;5720:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5738:25;5751:6;5759:3;;5738:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5738:12:2;;-1:-1:-1;;;5738:25:2:i;:::-;5809:6;5795:12;:10;:12::i;:::-;-1:-1:-1;;;;;5778:63:2;-1:-1:-1;;;;;;;;;;;5817:23:2;5778:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:205;;;;:::o;2130:94:11:-;2200:10;:17;2130:94;:::o;5877:285:10:-;6019:39;6038:10;6050:7;6019:18;:39::i;:::-;6011:101;;;;-1:-1:-1;;;6011:101:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6123:32;6137:4;6143:2;6147:7;6123:13;:32::i;:::-;5877:285;;;:::o;1748:229:11:-;1828:7;1863:16;1873:5;1863:9;:16::i;:::-;1855:5;:24;1847:80;;;;-1:-1:-1;;;1847:80:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1944:19:11;;;;;;:12;:19;;;;;:26;;1964:5;;1944:26;;;;;;;;;;;;;;1937:33;;1748:229;;;;:::o;4678:135:2:-;4753:12;4736:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:13;;;;:5;:13;;;;;;;;;:22;;4777:29;;;;;;-1:-1:-1;;4777:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:22;;4777:29;;4784:22;4777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4678:135;;;;:::o;2101:1794::-;2171:11;2504;2518:23;2525:8;2535:5;;2518:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2518:6:2;;-1:-1:-1;;;2518:23:2:i;:::-;2504:37;;2552:18;2573:42;2592:12;:10;:12::i;:::-;2606:8;2573:18;:42::i;:::-;2552:63;;2625:15;2643;2651:6;2643:7;:15::i;:::-;2625:33;;2673:10;:54;;;;;2687:40;2706:12;:10;:12::i;:::-;2720:6;2687:18;:40::i;:::-;2669:1180;;;2763:13;;;;:5;:13;;;;;:22;2751:34;;2743:72;;;;;-1:-1:-1;;;2743:72:2;;;;;;;;;;;;-1:-1:-1;;;2743:72:2;;;;;;;;;;;;;;;2894:13;;;;:5;:13;;;;;-1:-1:-1;;2894:20:2;;;;:31;2972:8;2900:6;2950:12;:10;:12::i;:::-;-1:-1:-1;;;;;2944:63:2;;2982:5;;2989:17;2944:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;2944:63:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;2944:63:2;;;;-1:-1:-1;2944:63:2;;-1:-1:-1;;;;;2944:63:2;3029:1;3022:8;;;;;;;2669:1180;3052:10;3051:11;:28;;;;;3066:13;3051:28;3047:802;;;3152:27;3158:12;:10;:12::i;:::-;3172:6;3152:5;:27::i;:::-;3193:13;;;;:5;:13;;;;;:33;;;-1:-1:-1;;3240:20:2;;;;:31;3218:8;3199:6;3296:12;:10;:12::i;:::-;-1:-1:-1;;;;;3290:59:2;;3328:5;;3335:13;3290:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3290:59:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3290:59:2;;;;-1:-1:-1;3290:59:2;;-1:-1:-1;;;;;3290:59:2;3371:1;3364:8;;;;;;;3047:802;3393:10;:41;;;;-1:-1:-1;3407:13:2;;;;:5;:13;;;;;:20;;;3431:3;-1:-1:-1;3407:27:2;3393:41;:58;;;;;3438:13;3393:58;3389:460;;;3487:13;;;;:5;:13;;;;;:22;3475:34;;3467:72;;;;;-1:-1:-1;;;3467:72:2;;;;;;;;;;;;-1:-1:-1;;;3467:72:2;;;;;;;;;;;;;;;3635:52;3649:15;3657:6;3649:7;:15::i;:::-;3666:12;:10;:12::i;:::-;3680:6;3635:13;:52::i;:::-;3701:13;;;;:5;:13;;;;;-1:-1:-1;;3701:20:2;;;;:31;3779:8;3707:6;3757:12;:10;:12::i;:::-;-1:-1:-1;;;;;3751:64:2;;3789:5;;3796:18;3751:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3751:64:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3751:64:2;;;;-1:-1:-1;3751:64:2;;-1:-1:-1;;;;;3751:64:2;3837:1;3830:8;;;;;;;3389:460;3887:1;3880:8;;;;;2101:1794;;;;;;:::o;5210:210::-;5283:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5301:13;;;;:5;:13;;;;;:24;;:32;;-1:-1:-1;;;;;;5301:32:2;-1:-1:-1;;;;;5301:32:2;;;;;:13;5365:12;:10;:12::i;:::-;-1:-1:-1;;;;;5348:65:2;-1:-1:-1;;;;;;;;;;;5387:25:2;5348:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;5210:210;;;:::o;6795:132:10:-;6881:39;6898:4;6904:2;6908:7;6881:39;;;;;;;;;;;;:16;:39::i;3901:97:2:-;3953:4;3976:15;3984:6;3976:7;:15::i;:::-;3969:22;3901:97;-1:-1:-1;;3901:97:2:o;2562:196:11:-;2620:7;2655:13;:11;:13::i;:::-;2647:5;:21;2639:78;;;;-1:-1:-1;;;2639:78:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:10;2745:5;2734:17;;;;;;;;;;;;;;;;2727:24;;2562:196;;;:::o;4004:133:2:-;4067:4;4090:40;4109:12;:10;:12::i;:::-;4123:6;4090:18;:40::i;2897:223:10:-;2952:7;2987:20;;;:11;:20;;;;;;-1:-1:-1;;;;;2987:20:10;3025:19;3017:73;;;;-1:-1:-1;;;3017:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:207;2526:7;-1:-1:-1;;;;;2553:19:10;;2545:74;;;;-1:-1:-1;;;2545:74:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2637:24:10;;;;;;:17;:24;;;;;:34;;:32;:34::i;4407:125:2:-;4481:4;4464:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4504:13:2;;;;:5;:13;;;;;:21;;;;4407:125::o;5006:198::-;5073:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5091:13;;;;:5;:13;;;;;:21;;:29;;;5097:6;5152:12;:10;:12::i;:::-;-1:-1:-1;;;;;5135:62:2;-1:-1:-1;;;;;;;;;;;5174:22:2;5135:62;;;;;;;;;;;1304:87:13;1377:7;1370:14;;;;;;;;-1:-1:-1;;1370:14:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:13;;1370:14;;1377:7;;1370:14;;1377:7;1370:14;;;;;;;;;;;;;;;;;;;;;;;;4730:243:10;-1:-1:-1;;;;;4809:16:10;;4815:10;4809:16;;4801:54;;;;;-1:-1:-1;;;4801:54:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4885:10;4866:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;4866:34:10;;;;;;;;;;;;:45;;-1:-1:-1;;4866:45:10;;;;;;;;;;4926:40;;;;;;;4866:34;;4885:10;4926:40;;;;;;;;;;;4730:243;;:::o;5426:211:2:-;5504:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:13;;;;:5;:13;;;;;:30;;:22;;5547:5;;5522:30;:::i;:::-;;5598:6;5584:12;:10;:12::i;:::-;-1:-1:-1;;;;;5567:63:2;-1:-1:-1;;;;;;;;;;;5606:23:2;5567:63;;;;;;;;;;;7632:265:10;7738:31;7751:4;7757:2;7761:7;7738:12;:31::i;:::-;7787:48;7810:4;7816:2;7820:7;7829:5;7787:22;:48::i;:::-;7779:111;;;;-1:-1:-1;;;7779:111:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:265;;;;:::o;4538:134:2:-;4615:7;4598:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4641:13:2;;;;:5;:13;;;;;:24;;;-1:-1:-1;;;;;4641:24:2;;4538:134::o;4276:125::-;4351:4;4334:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4374:13:2;;;;:5;:13;;;;;:20;;;;4276:125::o;1591:202:13:-;1649:13;1682:16;1690:7;1682;:16::i;:::-;1674:76;;;;-1:-1:-1;;;1674:76:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;;;:10;:19;;;;;;;;;1760:26;;;;;;-1:-1:-1;;1760:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;1760:26;;1767:19;1760:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:202;;;:::o;4143:127:2:-;4218:4;4201:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4241:13:2;;;;:5;:13;;;;;:22;;4143:127::o;1716:379::-;1788:7;1831:1;1815:5;:12;:17;;:39;;;;;1852:2;1836:5;:12;:18;;1815:39;1807:78;;;;;-1:-1:-1;;;1807:78:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1916:16;;;;;;;;;;1969:31;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1969:31:2;;;;;;;1959:42;;;;;;;;2020:10;2012:46;;;;;-1:-1:-1;;;2012:46:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:6;1716:379;-1:-1:-1;;;;1716:379:2:o;5295:145:10:-;-1:-1:-1;;;;;5398:25:10;;;5375:4;5398:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;5295:145::o;8092:152::-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:10;8218:19;;;8092:152::o;1285:96:2:-;1364:10;1285:96;:::o;8605:329:10:-;8690:4;8714:16;8722:7;8714;:16::i;:::-;8706:73;;;;-1:-1:-1;;;8706:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8789:13;8805:16;8813:7;8805;:16::i;:::-;8789:32;;8850:5;-1:-1:-1;;;;;8839:16:10;:7;-1:-1:-1;;;;;8839:16:10;;:51;;;;8883:7;-1:-1:-1;;;;;8859:31:10;:20;8871:7;8859:11;:20::i;:::-;-1:-1:-1;;;;;8859:31:10;;8839:51;:87;;;;8894:32;8911:5;8918:7;8894:16;:32::i;2032:192:13:-;2117:16;2125:7;2117;:16::i;:::-;2109:73;;;;-1:-1:-1;;;2109:73:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:19;;;;:10;:19;;;;;;;;:25;;;;;;;;:::i;3133:239:11:-;3218:38;3238:4;3244:2;3248:7;3218:19;:38::i;:::-;3267:47;3300:4;3306:7;3267:32;:47::i;:::-;3325:40;3353:2;3357:7;3325:27;:40::i;3629:196::-;3692:24;3704:2;3708:7;3692:11;:24::i;:::-;3727:40;3755:2;3759:7;3727:27;:40::i;:::-;3778;3810:7;3778:31;:40::i;:::-;3629:196;;:::o;1063:112:6:-;1154:14;;1063:112::o;11771:347:10:-;11892:4;11917:15;:2;-1:-1:-1;;;;;11917:13:10;;:15::i;:::-;11912:58;;-1:-1:-1;11955:4:10;11948:11;;11912:58;11996:70;;-1:-1:-1;;;11996:70:10;;12033:10;11996:70;;;;;;-1:-1:-1;;;;;11996:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:13;;11996:36;;;;;;12033:10;;12045:4;;12051:7;;12060:5;;11996:70;;;;;;;;;;;11980:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11996:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11996:70:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11996:70:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11996:70:10;-1:-1:-1;;;;;;12084:26:10;-1:-1:-1;;;12084:26:10;;-1:-1:-1;;11771:347:10;;;;;;:::o;10751:447::-;10864:4;-1:-1:-1;;;;;10844:24:10;:16;10852:7;10844;:16::i;:::-;-1:-1:-1;;;;;10844:24:10;;10836:78;;;;-1:-1:-1;;;10836:78:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10932:16:10;;10924:65;;;;-1:-1:-1;;;10924:65:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11000:23;11015:7;11000:14;:23::i;:::-;-1:-1:-1;;;;;11034:23:10;;;;;;:17;:23;;;;;:35;;:33;:35::i;:::-;-1:-1:-1;;;;;11079:21:10;;;;;;:17;:21;;;;;:33;;:31;:33::i;:::-;11123:20;;;;:11;:20;;;;;;:25;;-1:-1:-1;;;;;;11123:25:10;-1:-1:-1;;;;;11123:25:10;;;;;;;;;11164:27;;11123:20;;11164:27;;;;;;;10751:447;;;:::o;6241:1128:11:-;-1:-1:-1;;;;;6528:18:11;;6503:22;6528:18;;;:12;:18;;;;;:25;:32;;6558:1;6528:32;:29;:32;:::i;:::-;6570:18;6591:26;;;:17;:26;;;;;;6503:57;;-1:-1:-1;6721:28:11;;;6717:323;;-1:-1:-1;;;;;6787:18:11;;6765:19;6787:18;;;:12;:18;;;;;:34;;6806:14;;6787:34;;;;;;;;;;;;;;6765:56;;6869:11;6836:12;:18;6849:4;-1:-1:-1;;;;;6836:18:11;-1:-1:-1;;;;;6836:18:11;;;;;;;;;;;;6855:10;6836:30;;;;;;;;;;;;;;;;;;;:44;;;;6952:30;;;:17;:30;;;;;:43;;;6717:323;-1:-1:-1;;;;;7126:18:11;;;;;;:12;:18;;;;;:27;;;;;-1:-1:-1;;7126:27:11;;;:::i;:::-;;6241:1128;;;;:::o;5087:183::-;-1:-1:-1;;;;;5200:16:11;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:11;;;;;;;;5087:183::o;9179:327:10:-;-1:-1:-1;;;;;9250:16:10;;9242:61;;;;;-1:-1:-1;;;9242:61:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;9322;:16::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:10;-1:-1:-1;;;;;9382:25:10;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;:33::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:10;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5465:161:11:-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:11;;;;;;;5465:161::o;542:413:18:-;902:20;940:8;;;542:413::o;12280:171:10:-;12379:1;12343:24;;;:15;:24;;;;;;-1:-1:-1;;;;;12343:24:10;:38;12339:106;;12432:1;12397:24;;;:15;:24;;;;;:37;;-1:-1:-1;;;;;;12397:37:10;;;12339:106;12280:171;:::o;1276:108:6:-;1356:14;;:21;;1375:1;1356:21;:18;:21;:::i;:::-;1339:38;;1276:108::o;1181:89::-;1244:19;;1262:1;1244:19;;;1181:89::o;1274:179:9:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:9;;;1274:179::o;737:5113:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;737:5113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5113:2;;;-1:-1:-1;737:5113:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "// Copyright (C) 2019 Christian Felde\n// Copyright (C) 2019 Mohamed Elshami\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npragma solidity ^0.5.0;\n\nimport \"./IAKAP.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\";\n\ncontract AKAF is IAKAP, ERC721Full {\n struct Node {\n uint parentId;\n uint expiry;\n uint seeAlso;\n address seeAddress;\n bytes nodeBody;\n }\n\n mapping(uint => Node) private nodes;\n\n constructor() ERC721Full(\"AKA Forever Registry\", \"AKAF\") public {\n // Create the special root node and assigned msg.sender as owner\n uint nodeId = 0;\n _mint(_msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, nodeId, \"\", ClaimCase.NEW);\n }\n\n function _msgSender() internal view returns (address payable) {\n return msg.sender;\n }\n\n modifier onlyExisting(uint nodeId) {\n require(_exists(nodeId), \"AKAP: operator query for nonexistent node\");\n\n _;\n }\n\n modifier onlyApproved(uint nodeId) {\n require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId), \"AKAP: set value caller is not owner nor approved\");\n\n _;\n }\n\n function hashOf(uint parentId, bytes memory label) public pure returns (uint id) {\n require(label.length >= 1 && label.length <= 32, \"AKAP: Invalid label length\");\n\n bytes32 labelHash = keccak256(label);\n bytes32 nodeId = keccak256(abi.encode(parentId, labelHash));\n\n require(nodeId > 0, \"AKAP: Invalid node hash\");\n\n return uint(nodeId);\n }\n\n function claim(uint parentId, bytes calldata label) external returns (uint status) {\n // Claim logic is as found in AKAP, but with an expiry timestamp set to \"forever\".\n // Owners of a node on an AKAF contract does hence not need to reclaim their nodes.\n // Node owners may still explicitly expire a node if they wish.\n\n // Get hash/id of the node caller is claiming\n uint nodeId = hashOf(parentId, label);\n\n bool isParentOwner = _isApprovedOrOwner(_msgSender(), parentId);\n bool nodeExists = _exists(nodeId);\n\n if (nodeExists && _isApprovedOrOwner(_msgSender(), nodeId)) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Caller is current owner/approved, extend lease..\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.RECLAIM);\n\n return 1;\n } else if (!nodeExists && isParentOwner) {\n // Node does not exist, allocate to caller..\n _mint(_msgSender(), nodeId);\n nodes[nodeId].parentId = parentId;\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.NEW);\n\n return 2;\n } else if (nodeExists && nodes[nodeId].expiry <= now && isParentOwner) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Node exists and is expired, allocate to caller and extend lease..\n _transferFrom(ownerOf(nodeId), _msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.TRANSFER);\n\n return 3;\n }\n\n // No action\n return 0;\n }\n\n function exists(uint nodeId) external view returns (bool) {\n return _exists(nodeId);\n }\n\n function isApprovedOrOwner(uint nodeId) external view returns (bool) {\n return _isApprovedOrOwner(_msgSender(), nodeId);\n }\n\n function parentOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].parentId;\n }\n\n function expiryOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].expiry;\n }\n\n function seeAlso(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].seeAlso;\n }\n\n function seeAddress(uint nodeId) external view onlyExisting(nodeId) returns (address) {\n return nodes[nodeId].seeAddress;\n }\n\n function nodeBody(uint nodeId) external view onlyExisting(nodeId) returns (bytes memory) {\n return nodes[nodeId].nodeBody;\n }\n\n function expireNode(uint nodeId) external onlyApproved(nodeId) {\n nodes[nodeId].expiry = now;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.EXPIRY);\n }\n\n function setSeeAlso(uint nodeId, uint value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAlso = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ALSO);\n }\n\n function setSeeAddress(uint nodeId, address value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAddress = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ADDRESS);\n }\n\n function setNodeBody(uint nodeId, bytes calldata value) external onlyApproved(nodeId) {\n nodes[nodeId].nodeBody = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.NODE_BODY);\n }\n\n function setTokenURI(uint nodeId, string calldata uri) external onlyApproved(nodeId) {\n _setTokenURI(nodeId, uri);\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.TOKEN_URI);\n }\n}", + "sourcePath": "/private/tmp/eth/akap/contracts/AKAF.sol", + "ast": { + "absolutePath": "/private/tmp/eth/akap/contracts/AKAF.sol", + "exportedSymbols": { + "AKAF": [ + 1335 + ] + }, + "id": 1336, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 784, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "627:23:2" + }, + { + "absolutePath": "/private/tmp/eth/akap/contracts/IAKAP.sol", + "file": "./IAKAP.sol", + "id": 785, + "nodeType": "ImportDirective", + "scope": 1336, + "sourceUnit": 2090, + "src": "652:21:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", + "id": 786, + "nodeType": "ImportDirective", + "scope": 1336, + "sourceUnit": 3317, + "src": "674:61:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 787, + "name": "IAKAP", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2089, + "src": "754:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAKAP_$2089", + "typeString": "contract IAKAP" + } + }, + "id": 788, + "nodeType": "InheritanceSpecifier", + "src": "754:5:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 789, + "name": "ERC721Full", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3316, + "src": "761:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Full_$3316", + "typeString": "contract ERC721Full" + } + }, + "id": 790, + "nodeType": "InheritanceSpecifier", + "src": "761:10:2" + } + ], + "contractDependencies": [ + 2089, + 2247, + 2257, + 2955, + 3292, + 3316, + 3445, + 3548, + 3575, + 3598 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1335, + "linearizedBaseContracts": [ + 1335, + 3316, + 3445, + 3598, + 3292, + 3575, + 2955, + 3548, + 2247, + 2257, + 2089 + ], + "name": "AKAF", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AKAF.Node", + "id": 801, + "members": [ + { + "constant": false, + "id": 792, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "800:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 794, + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "823:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "823:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 796, + "name": "seeAlso", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "844:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "844:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 798, + "name": "seeAddress", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "866:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 800, + "name": "nodeBody", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "894:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 799, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "894:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 1335, + "src": "778:137:2", + "visibility": "public" + }, + { + "constant": false, + "id": 805, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 1335, + "src": "921:35:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node)" + }, + "typeName": { + "id": 804, + "keyType": { + "id": 802, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "929:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "921:21:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node)" + }, + "valueType": { + "contractScope": null, + "id": 803, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 801, + "src": "937:4:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage_ptr", + "typeString": "struct AKAF.Node" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 842, + "nodeType": "Block", + "src": "1027:252:2", + "statements": [ + { + "assignments": [ + 813 + ], + "declarations": [ + { + "constant": false, + "id": 813, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 842, + "src": "1110:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1110:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 815, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1124:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1110:15:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 817, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1141:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1155:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 816, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099 + ], + "referencedDeclaration": 3099, + "src": "1135:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1135:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "1135:27:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 822, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "1172:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 824, + "indexExpression": { + "argumentTypes": null, + "id": 823, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1178:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1172:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 825, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "1172:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1200:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1195:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1195:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1172:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 831, + "nodeType": "ExpressionStatement", + "src": "1172:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 833, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1224:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1224:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 835, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1238:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 836, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1246:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1254:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 838, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "1258:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NEW", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1258:13:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 832, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "1218:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1218:54:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "EmitStatement", + "src": "1213:59:2" + } + ] + }, + "documentation": null, + "id": 843, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "414b4120466f7265766572205265676973747279", + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "988:22:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cae7ceeb2ebe151f1c27619f938a56491425da9af3053c9e79e96783851bd6e3", + "typeString": "literal_string \"AKA Forever Registry\"" + }, + "value": "AKA Forever Registry" + }, + { + "argumentTypes": null, + "hexValue": "414b4146", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:6:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a508d8c7eae35b3a6e2f5a6804bed7b2f7bf00c46f7af065a48ea5aa52ab21e5", + "typeString": "literal_string \"AKAF\"" + }, + "value": "AKAF" + } + ], + "id": 810, + "modifierName": { + "argumentTypes": null, + "id": 807, + "name": "ERC721Full", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3316, + "src": "977:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Full_$3316_$", + "typeString": "type(contract ERC721Full)" + } + }, + "nodeType": "ModifierInvocation", + "src": "977:42:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 806, + "nodeType": "ParameterList", + "parameters": [], + "src": "974:2:2" + }, + "returnParameters": { + "id": 811, + "nodeType": "ParameterList", + "parameters": [], + "src": "1027:0:2" + }, + "scope": 1335, + "src": "963:316:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 851, + "nodeType": "Block", + "src": "1347:34:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 848, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3648, + "src": "1364:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1364:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 847, + "id": 850, + "nodeType": "Return", + "src": "1357:17:2" + } + ] + }, + "documentation": null, + "id": 852, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [], + "src": "1304:2:2" + }, + "returnParameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 846, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 852, + "src": "1330:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1330:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1329:17:2" + }, + "scope": 1335, + "src": "1285:96:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 864, + "nodeType": "Block", + "src": "1422:98:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 858, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "1448:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 857, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "1440:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1440:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f6465", + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1457:43:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", + "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" + }, + "value": "AKAP: operator query for nonexistent node" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", + "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" + } + ], + "id": 856, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1432:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1432:69:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 862, + "nodeType": "ExpressionStatement", + "src": "1432:69:2" + }, + { + "id": 863, + "nodeType": "PlaceholderStatement", + "src": "1512:1:2" + } + ] + }, + "documentation": null, + "id": 865, + "name": "onlyExisting", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 854, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 865, + "src": "1409:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 853, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1409:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1408:13:2" + }, + "src": "1387:133:2", + "visibility": "internal" + }, + { + "body": { + "id": 883, + "nodeType": "Block", + "src": "1561:149:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "1587:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 870, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "1579:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1579:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 874, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1617:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1617:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 876, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "1631:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 873, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "1598:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1598:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1579:59:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1640:50:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", + "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" + }, + "value": "AKAP: set value caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", + "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" + } + ], + "id": 869, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1571:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1571:120:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 881, + "nodeType": "ExpressionStatement", + "src": "1571:120:2" + }, + { + "id": 882, + "nodeType": "PlaceholderStatement", + "src": "1702:1:2" + } + ] + }, + "documentation": null, + "id": 884, + "name": "onlyApproved", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 867, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "1548:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 866, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:13:2" + }, + "src": "1526:184:2", + "visibility": "internal" + }, + { + "body": { + "id": 933, + "nodeType": "Block", + "src": "1797:298:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 894, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1815:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1815:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1831:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1815:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 898, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1836:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1836:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1852:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1836:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1815:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c6964206c6162656c206c656e677468", + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1856:28:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", + "typeString": "literal_string \"AKAP: Invalid label length\"" + }, + "value": "AKAP: Invalid label length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", + "typeString": "literal_string \"AKAP: Invalid label length\"" + } + ], + "id": 893, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1807:78:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 905, + "nodeType": "ExpressionStatement", + "src": "1807:78:2" + }, + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "name": "labelHash", + "nodeType": "VariableDeclaration", + "scope": 933, + "src": "1896:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 906, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1896:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1926:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 908, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3642, + "src": "1916:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1916:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1896:36:2" + }, + { + "assignments": [ + 913 + ], + "declarations": [ + { + "constant": false, + "id": 913, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 933, + "src": "1942:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1942:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 921, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 917, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "1980:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 918, + "name": "labelHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "1990:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 915, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1969:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1969:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1969:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 914, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3642, + "src": "1959:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1959:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1942:59:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 923, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2020:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2029:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2020:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c6964206e6f64652068617368", + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2032:25:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", + "typeString": "literal_string \"AKAP: Invalid node hash\"" + }, + "value": "AKAP: Invalid node hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", + "typeString": "literal_string \"AKAP: Invalid node hash\"" + } + ], + "id": 922, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "2012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2012:46:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "2012:46:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 930, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2081:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2076:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2076:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 892, + "id": 932, + "nodeType": "Return", + "src": "2069:19:2" + } + ] + }, + "documentation": null, + "id": 934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hashOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 886, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1732:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 885, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1732:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 888, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1747:18:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1747:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1731:35:2" + }, + "returnParameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 891, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1788:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 890, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1788:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1787:9:2" + }, + "scope": 1335, + "src": "1716:379:2", + "stateMutability": "pure", + "superFunction": 1924, + "visibility": "public" + }, + { + "body": { + "id": 1101, + "nodeType": "Block", + "src": "2184:1711:2", + "statements": [ + { + "assignments": [ + 944 + ], + "declarations": [ + { + "constant": false, + "id": 944, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2504:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2504:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 949, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 946, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2525:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 947, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2535:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 945, + "name": "hashOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 934 + ], + "referencedDeclaration": 934, + "src": "2518:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,bytes memory) pure returns (uint256)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2518:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2504:37:2" + }, + { + "assignments": [ + 951 + ], + "declarations": [ + { + "constant": false, + "id": 951, + "name": "isParentOwner", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2552:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2552:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 957, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 953, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2592:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2592:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 955, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2606:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 952, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "2573:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2573:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2552:63:2" + }, + { + "assignments": [ + 959 + ], + "declarations": [ + { + "constant": false, + "id": 959, + "name": "nodeExists", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2625:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 958, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2625:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 963, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2651:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 960, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "2643:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2643:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2625:33:2" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 964, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2673:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 966, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2706:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2706:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 968, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2720:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 965, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "2687:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:54:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3051:11:2", + "subExpression": { + "argumentTypes": null, + "id": 1004, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "3052:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1006, + "name": "isParentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "3066:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3051:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "3393:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1045, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3407:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1047, + "indexExpression": { + "argumentTypes": null, + "id": 1046, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3413:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3407:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3407:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1049, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "3431:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3407:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3393:41:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1052, + "name": "isParentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "3438:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3393:58:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1096, + "nodeType": "IfStatement", + "src": "3389:460:2", + "trueBody": { + "id": 1095, + "nodeType": "Block", + "src": "3453:396:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1055, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1056, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3487:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1058, + "indexExpression": { + "argumentTypes": null, + "id": 1057, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3493:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3487:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "3487:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3475:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c696420706172656e742068617368", + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3511:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + }, + "value": "AKAP: Invalid parent hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + } + ], + "id": 1054, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "3467:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3467:72:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1063, + "nodeType": "ExpressionStatement", + "src": "3467:72:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1066, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3657:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1065, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2491 + ], + "referencedDeclaration": 2491, + "src": "3649:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1068, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3666:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3666:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1070, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3680:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1064, + "name": "_transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3075 + ], + "referencedDeclaration": 3075, + "src": "3635:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3635:52:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1072, + "nodeType": "ExpressionStatement", + "src": "3635:52:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1073, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3701:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1075, + "indexExpression": { + "argumentTypes": null, + "id": 1074, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3707:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3701:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3701:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3729:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3730:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3724:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3724:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3701:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1082, + "nodeType": "ExpressionStatement", + "src": "3701:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1084, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3757:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1086, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3771:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1087, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3779:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1088, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3789:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3796:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TRANSFER", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3796:18:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 1083, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "3751:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:64:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1092, + "nodeType": "EmitStatement", + "src": "3746:69:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3837:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "functionReturnParameters": 942, + "id": 1094, + "nodeType": "Return", + "src": "3830:8:2" + } + ] + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "3047:802:2", + "trueBody": { + "id": 1043, + "nodeType": "Block", + "src": "3081:302:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1009, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3158:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1011, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3172:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1008, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099 + ], + "referencedDeclaration": 3099, + "src": "3152:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3152:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1013, + "nodeType": "ExpressionStatement", + "src": "3152:27:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1014, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3193:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1016, + "indexExpression": { + "argumentTypes": null, + "id": 1015, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3199:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3193:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "3193:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1018, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3218:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3193:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1020, + "nodeType": "ExpressionStatement", + "src": "3193:33:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1021, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3240:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1023, + "indexExpression": { + "argumentTypes": null, + "id": 1022, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3246:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3240:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3240:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3268:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3269:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3263:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3263:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3240:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "3240:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1032, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3296:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3296:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1034, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3310:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1035, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3318:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1036, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3328:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1037, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3335:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NEW", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3335:13:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 1031, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "3290:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3290:59:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1040, + "nodeType": "EmitStatement", + "src": "3285:64:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3371:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 942, + "id": 1042, + "nodeType": "Return", + "src": "3364:8:2" + } + ] + } + }, + "id": 1098, + "nodeType": "IfStatement", + "src": "2669:1180:2", + "trueBody": { + "id": 1003, + "nodeType": "Block", + "src": "2729:312:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 972, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2751:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 973, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "2763:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 975, + "indexExpression": { + "argumentTypes": null, + "id": 974, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2769:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2763:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "2763:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2751:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c696420706172656e742068617368", + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2787:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + }, + "value": "AKAP: Invalid parent hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + } + ], + "id": 971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "2743:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2743:72:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 980, + "nodeType": "ExpressionStatement", + "src": "2743:72:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 981, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "2894:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 983, + "indexExpression": { + "argumentTypes": null, + "id": 982, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2900:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2894:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "2894:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2922:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2923:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2917:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2917:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2894:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 990, + "nodeType": "ExpressionStatement", + "src": "2894:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 992, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2950:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2950:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 994, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2964:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 995, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2972:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 996, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2982:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 997, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2989:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECLAIM", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2989:17:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 991, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "2944:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2944:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1000, + "nodeType": "EmitStatement", + "src": "2939:68:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3029:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "functionReturnParameters": 942, + "id": 1002, + "nodeType": "Return", + "src": "3022:8:2" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3887:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 942, + "id": 1100, + "nodeType": "Return", + "src": "3880:8:2" + } + ] + }, + "documentation": null, + "id": 1102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 936, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2116:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2116:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 938, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2131:20:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 937, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2131:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2115:37:2" + }, + "returnParameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 941, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2171:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2171:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2170:13:2" + }, + "scope": 1335, + "src": "2101:1794:2", + "stateMutability": "nonpayable", + "superFunction": 1933, + "visibility": "external" + }, + { + "body": { + "id": 1113, + "nodeType": "Block", + "src": "3959:39:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1110, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1104, + "src": "3984:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1109, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "3976:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3976:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1108, + "id": 1112, + "nodeType": "Return", + "src": "3969:22:2" + } + ] + }, + "documentation": null, + "id": 1114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3917:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3917:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3916:13:2" + }, + "returnParameters": { + "id": 1108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1107, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3953:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1106, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3953:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3952:6:2" + }, + "scope": 1335, + "src": "3901:97:2", + "stateMutability": "view", + "superFunction": 1940, + "visibility": "external" + }, + { + "body": { + "id": 1127, + "nodeType": "Block", + "src": "4073:64:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1122, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "4109:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1124, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "4123:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1121, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "4090:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4090:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1120, + "id": 1126, + "nodeType": "Return", + "src": "4083:47:2" + } + ] + }, + "documentation": null, + "id": 1128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1116, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "4031:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4031:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4030:13:2" + }, + "returnParameters": { + "id": 1120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1119, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "4067:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4067:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4066:6:2" + }, + "scope": 1335, + "src": "4004:133:2", + "stateMutability": "view", + "superFunction": 1947, + "visibility": "external" + }, + { + "body": { + "id": 1143, + "nodeType": "Block", + "src": "4224:46:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1138, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4241:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1140, + "indexExpression": { + "argumentTypes": null, + "id": 1139, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4247:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4241:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "4241:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1137, + "id": 1142, + "nodeType": "Return", + "src": "4234:29:2" + } + ] + }, + "documentation": null, + "id": 1144, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1133, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4201:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1134, + "modifierName": { + "argumentTypes": null, + "id": 1132, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4188:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4188:20:2" + } + ], + "name": "parentOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1130, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "4161:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4161:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4160:13:2" + }, + "returnParameters": { + "id": 1137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1136, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "4218:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4218:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4217:6:2" + }, + "scope": 1335, + "src": "4143:127:2", + "stateMutability": "view", + "superFunction": 1961, + "visibility": "external" + }, + { + "body": { + "id": 1159, + "nodeType": "Block", + "src": "4357:44:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1154, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4374:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1155, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "4380:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4374:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "4374:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1153, + "id": 1158, + "nodeType": "Return", + "src": "4367:27:2" + } + ] + }, + "documentation": null, + "id": 1160, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "4334:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1148, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4321:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4321:20:2" + } + ], + "name": "expiryOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1146, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "4294:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4294:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4293:13:2" + }, + "returnParameters": { + "id": 1153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1152, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "4351:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4351:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4350:6:2" + }, + "scope": 1335, + "src": "4276:125:2", + "stateMutability": "view", + "superFunction": 1968, + "visibility": "external" + }, + { + "body": { + "id": 1175, + "nodeType": "Block", + "src": "4487:45:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1170, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4504:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1172, + "indexExpression": { + "argumentTypes": null, + "id": 1171, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "4510:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4504:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seeAlso", + "nodeType": "MemberAccess", + "referencedDeclaration": 796, + "src": "4504:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1169, + "id": 1174, + "nodeType": "Return", + "src": "4497:28:2" + } + ] + }, + "documentation": null, + "id": 1176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1165, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "4464:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1166, + "modifierName": { + "argumentTypes": null, + "id": 1164, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4451:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4451:20:2" + } + ], + "name": "seeAlso", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1162, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1176, + "src": "4424:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1161, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4424:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4423:13:2" + }, + "returnParameters": { + "id": 1169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1176, + "src": "4481:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4481:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4480:6:2" + }, + "scope": 1335, + "src": "4407:125:2", + "stateMutability": "view", + "superFunction": 1975, + "visibility": "external" + }, + { + "body": { + "id": 1191, + "nodeType": "Block", + "src": "4624:48:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1186, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4641:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1188, + "indexExpression": { + "argumentTypes": null, + "id": 1187, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4647:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4641:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 798, + "src": "4641:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1185, + "id": 1190, + "nodeType": "Return", + "src": "4634:31:2" + } + ] + }, + "documentation": null, + "id": 1192, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1181, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4598:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1182, + "modifierName": { + "argumentTypes": null, + "id": 1180, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4585:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4585:20:2" + } + ], + "name": "seeAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1178, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1192, + "src": "4558:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1177, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4558:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4557:13:2" + }, + "returnParameters": { + "id": 1185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1184, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1192, + "src": "4615:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4615:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4614:9:2" + }, + "scope": 1335, + "src": "4538:134:2", + "stateMutability": "view", + "superFunction": 1982, + "visibility": "external" + }, + { + "body": { + "id": 1207, + "nodeType": "Block", + "src": "4767:46:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1202, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4784:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1204, + "indexExpression": { + "argumentTypes": null, + "id": 1203, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "4790:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4784:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "nodeBody", + "nodeType": "MemberAccess", + "referencedDeclaration": 800, + "src": "4784:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "functionReturnParameters": 1201, + "id": 1206, + "nodeType": "Return", + "src": "4777:29:2" + } + ] + }, + "documentation": null, + "id": 1208, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1197, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "4736:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1198, + "modifierName": { + "argumentTypes": null, + "id": 1196, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4723:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4723:20:2" + } + ], + "name": "nodeBody", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1194, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1208, + "src": "4696:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1193, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4696:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4695:13:2" + }, + "returnParameters": { + "id": 1201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1208, + "src": "4753:12:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1199, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4753:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4752:14:2" + }, + "scope": 1335, + "src": "4678:135:2", + "stateMutability": "view", + "superFunction": 1989, + "visibility": "external" + }, + { + "body": { + "id": 1231, + "nodeType": "Block", + "src": "4882:118:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1216, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4892:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1218, + "indexExpression": { + "argumentTypes": null, + "id": 1217, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4898:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4892:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "4892:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1220, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "4915:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4892:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1222, + "nodeType": "ExpressionStatement", + "src": "4892:26:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1224, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "4950:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4950:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1226, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4964:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1227, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4972:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "EXPIRY", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4972:20:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1223, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "4933:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4933:60:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1230, + "nodeType": "EmitStatement", + "src": "4928:65:2" + } + ] + }, + "documentation": null, + "id": 1232, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1213, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4874:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1214, + "modifierName": { + "argumentTypes": null, + "id": 1212, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "4861:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4861:20:2" + } + ], + "name": "expireNode", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1210, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1232, + "src": "4839:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1209, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4839:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4838:13:2" + }, + "returnParameters": { + "id": 1215, + "nodeType": "ParameterList", + "parameters": [], + "src": "4882:0:2" + }, + "scope": 1335, + "src": "4819:181:2", + "stateMutability": "nonpayable", + "superFunction": 2001, + "visibility": "external" + }, + { + "body": { + "id": 1257, + "nodeType": "Block", + "src": "5081:123:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1242, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5091:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1243, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5097:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5091:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "seeAlso", + "nodeType": "MemberAccess", + "referencedDeclaration": 796, + "src": "5091:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1246, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "5115:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5091:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "5091:29:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1250, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5152:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5152:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5166:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1253, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5174:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "SEE_ALSO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5174:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1249, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5135:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5135:62:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1256, + "nodeType": "EmitStatement", + "src": "5130:67:2" + } + ] + }, + "documentation": null, + "id": 1258, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1239, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5073:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1240, + "modifierName": { + "argumentTypes": null, + "id": 1238, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5060:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5060:20:2" + } + ], + "name": "setSeeAlso", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1234, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "5026:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1236, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "5039:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5039:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5025:25:2" + }, + "returnParameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "5081:0:2" + }, + "scope": 1335, + "src": "5006:198:2", + "stateMutability": "nonpayable", + "superFunction": 2008, + "visibility": "external" + }, + { + "body": { + "id": 1283, + "nodeType": "Block", + "src": "5291:129:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1268, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5301:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1270, + "indexExpression": { + "argumentTypes": null, + "id": 1269, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5307:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5301:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "seeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 798, + "src": "5301:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5328:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5301:32:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1274, + "nodeType": "ExpressionStatement", + "src": "5301:32:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1276, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5365:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5365:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1278, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5379:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1279, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5387:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "SEE_ADDRESS", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5387:25:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1275, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5348:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5348:65:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1282, + "nodeType": "EmitStatement", + "src": "5343:70:2" + } + ] + }, + "documentation": null, + "id": 1284, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1265, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5283:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1266, + "modifierName": { + "argumentTypes": null, + "id": 1264, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5270:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5270:20:2" + } + ], + "name": "setSeeAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1260, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "5233:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1259, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1262, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "5246:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5246:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5232:28:2" + }, + "returnParameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [], + "src": "5291:0:2" + }, + "scope": 1335, + "src": "5210:210:2", + "stateMutability": "nonpayable", + "superFunction": 2015, + "visibility": "external" + }, + { + "body": { + "id": 1309, + "nodeType": "Block", + "src": "5512:125:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1294, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5522:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1296, + "indexExpression": { + "argumentTypes": null, + "id": 1295, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5528:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5522:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "nodeBody", + "nodeType": "MemberAccess", + "referencedDeclaration": 800, + "src": "5522:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1298, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "5547:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "src": "5522:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "5522:30:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1302, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5584:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5584:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1304, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5598:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1305, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5606:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NODE_BODY", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5606:23:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1301, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5567:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5567:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1308, + "nodeType": "EmitStatement", + "src": "5562:68:2" + } + ] + }, + "documentation": null, + "id": 1310, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1291, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5504:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1292, + "modifierName": { + "argumentTypes": null, + "id": 1290, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5491:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5491:20:2" + } + ], + "name": "setNodeBody", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1286, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "5447:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1285, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5447:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "5460:20:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1287, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5460:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:35:2" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [], + "src": "5512:0:2" + }, + "scope": 1335, + "src": "5426:211:2", + "stateMutability": "nonpayable", + "superFunction": 2022, + "visibility": "external" + }, + { + "body": { + "id": 1333, + "nodeType": "Block", + "src": "5728:120:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1321, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5751:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1322, + "name": "uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "5759:3:2", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1320, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "5738:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5738:25:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1324, + "nodeType": "ExpressionStatement", + "src": "5738:25:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1326, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5795:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5795:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1328, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5809:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1329, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5817:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TOKEN_URI", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5817:23:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1325, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5778:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5778:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1332, + "nodeType": "EmitStatement", + "src": "5773:68:2" + } + ] + }, + "documentation": null, + "id": 1334, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1317, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5720:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1318, + "modifierName": { + "argumentTypes": null, + "id": 1316, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5707:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5707:20:2" + } + ], + "name": "setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1312, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "5664:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1311, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5664:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "name": "uri", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "5677:19:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1313, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5677:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5663:34:2" + }, + "returnParameters": { + "id": 1319, + "nodeType": "ParameterList", + "parameters": [], + "src": "5728:0:2" + }, + "scope": 1335, + "src": "5643:205:2", + "stateMutability": "nonpayable", + "superFunction": 2029, + "visibility": "external" + } + ], + "scope": 1336, + "src": "737:5113:2" + } + ], + "src": "627:5223:2" + }, + "legacyAST": { + "absolutePath": "/private/tmp/eth/akap/contracts/AKAF.sol", + "exportedSymbols": { + "AKAF": [ + 1335 + ] + }, + "id": 1336, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 784, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "627:23:2" + }, + { + "absolutePath": "/private/tmp/eth/akap/contracts/IAKAP.sol", + "file": "./IAKAP.sol", + "id": 785, + "nodeType": "ImportDirective", + "scope": 1336, + "sourceUnit": 2090, + "src": "652:21:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", + "id": 786, + "nodeType": "ImportDirective", + "scope": 1336, + "sourceUnit": 3317, + "src": "674:61:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 787, + "name": "IAKAP", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2089, + "src": "754:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAKAP_$2089", + "typeString": "contract IAKAP" + } + }, + "id": 788, + "nodeType": "InheritanceSpecifier", + "src": "754:5:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 789, + "name": "ERC721Full", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3316, + "src": "761:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Full_$3316", + "typeString": "contract ERC721Full" + } + }, + "id": 790, + "nodeType": "InheritanceSpecifier", + "src": "761:10:2" + } + ], + "contractDependencies": [ + 2089, + 2247, + 2257, + 2955, + 3292, + 3316, + 3445, + 3548, + 3575, + 3598 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1335, + "linearizedBaseContracts": [ + 1335, + 3316, + 3445, + 3598, + 3292, + 3575, + 2955, + 3548, + 2247, + 2257, + 2089 + ], + "name": "AKAF", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AKAF.Node", + "id": 801, + "members": [ + { + "constant": false, + "id": 792, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "800:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 794, + "name": "expiry", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "823:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "823:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 796, + "name": "seeAlso", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "844:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "844:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 798, + "name": "seeAddress", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "866:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 800, + "name": "nodeBody", + "nodeType": "VariableDeclaration", + "scope": 801, + "src": "894:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 799, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "894:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 1335, + "src": "778:137:2", + "visibility": "public" + }, + { + "constant": false, + "id": 805, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 1335, + "src": "921:35:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node)" + }, + "typeName": { + "id": 804, + "keyType": { + "id": 802, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "929:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "921:21:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node)" + }, + "valueType": { + "contractScope": null, + "id": 803, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 801, + "src": "937:4:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage_ptr", + "typeString": "struct AKAF.Node" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 842, + "nodeType": "Block", + "src": "1027:252:2", + "statements": [ + { + "assignments": [ + 813 + ], + "declarations": [ + { + "constant": false, + "id": 813, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 842, + "src": "1110:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1110:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 815, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1124:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1110:15:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 817, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1141:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1155:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 816, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099 + ], + "referencedDeclaration": 3099, + "src": "1135:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1135:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "1135:27:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 822, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "1172:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 824, + "indexExpression": { + "argumentTypes": null, + "id": 823, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1178:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1172:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 825, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "1172:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1200:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1195:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1195:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1172:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 831, + "nodeType": "ExpressionStatement", + "src": "1172:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 833, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1224:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1224:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 835, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1238:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 836, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "1246:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1254:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 838, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "1258:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NEW", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1258:13:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 832, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "1218:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1218:54:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "EmitStatement", + "src": "1213:59:2" + } + ] + }, + "documentation": null, + "id": 843, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "414b4120466f7265766572205265676973747279", + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "988:22:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cae7ceeb2ebe151f1c27619f938a56491425da9af3053c9e79e96783851bd6e3", + "typeString": "literal_string \"AKA Forever Registry\"" + }, + "value": "AKA Forever Registry" + }, + { + "argumentTypes": null, + "hexValue": "414b4146", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:6:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a508d8c7eae35b3a6e2f5a6804bed7b2f7bf00c46f7af065a48ea5aa52ab21e5", + "typeString": "literal_string \"AKAF\"" + }, + "value": "AKAF" + } + ], + "id": 810, + "modifierName": { + "argumentTypes": null, + "id": 807, + "name": "ERC721Full", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3316, + "src": "977:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Full_$3316_$", + "typeString": "type(contract ERC721Full)" + } + }, + "nodeType": "ModifierInvocation", + "src": "977:42:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 806, + "nodeType": "ParameterList", + "parameters": [], + "src": "974:2:2" + }, + "returnParameters": { + "id": 811, + "nodeType": "ParameterList", + "parameters": [], + "src": "1027:0:2" + }, + "scope": 1335, + "src": "963:316:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 851, + "nodeType": "Block", + "src": "1347:34:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 848, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3648, + "src": "1364:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1364:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 847, + "id": 850, + "nodeType": "Return", + "src": "1357:17:2" + } + ] + }, + "documentation": null, + "id": 852, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [], + "src": "1304:2:2" + }, + "returnParameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 846, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 852, + "src": "1330:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1330:15:2", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1329:17:2" + }, + "scope": 1335, + "src": "1285:96:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 864, + "nodeType": "Block", + "src": "1422:98:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 858, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 854, + "src": "1448:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 857, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "1440:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1440:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f6465", + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1457:43:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", + "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" + }, + "value": "AKAP: operator query for nonexistent node" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", + "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" + } + ], + "id": 856, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1432:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1432:69:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 862, + "nodeType": "ExpressionStatement", + "src": "1432:69:2" + }, + { + "id": 863, + "nodeType": "PlaceholderStatement", + "src": "1512:1:2" + } + ] + }, + "documentation": null, + "id": 865, + "name": "onlyExisting", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 854, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 865, + "src": "1409:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 853, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1409:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1408:13:2" + }, + "src": "1387:133:2", + "visibility": "internal" + }, + { + "body": { + "id": 883, + "nodeType": "Block", + "src": "1561:149:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "1587:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 870, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "1579:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1579:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 874, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "1617:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1617:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 876, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "1631:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 873, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "1598:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1598:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1579:59:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1640:50:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", + "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" + }, + "value": "AKAP: set value caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", + "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" + } + ], + "id": 869, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1571:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1571:120:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 881, + "nodeType": "ExpressionStatement", + "src": "1571:120:2" + }, + { + "id": 882, + "nodeType": "PlaceholderStatement", + "src": "1702:1:2" + } + ] + }, + "documentation": null, + "id": 884, + "name": "onlyApproved", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 867, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "1548:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 866, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1548:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:13:2" + }, + "src": "1526:184:2", + "visibility": "internal" + }, + { + "body": { + "id": 933, + "nodeType": "Block", + "src": "1797:298:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 894, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1815:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1815:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1831:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1815:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 898, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1836:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1836:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1852:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1836:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1815:39:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c6964206c6162656c206c656e677468", + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1856:28:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", + "typeString": "literal_string \"AKAP: Invalid label length\"" + }, + "value": "AKAP: Invalid label length" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", + "typeString": "literal_string \"AKAP: Invalid label length\"" + } + ], + "id": 893, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "1807:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1807:78:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 905, + "nodeType": "ExpressionStatement", + "src": "1807:78:2" + }, + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "name": "labelHash", + "nodeType": "VariableDeclaration", + "scope": 933, + "src": "1896:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 906, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1896:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1926:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 908, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3642, + "src": "1916:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1916:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1896:36:2" + }, + { + "assignments": [ + 913 + ], + "declarations": [ + { + "constant": false, + "id": 913, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 933, + "src": "1942:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1942:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 921, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 917, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "1980:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 918, + "name": "labelHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "1990:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 915, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1969:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1969:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1969:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 914, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3642, + "src": "1959:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1959:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1942:59:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 923, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2020:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2029:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2020:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c6964206e6f64652068617368", + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2032:25:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", + "typeString": "literal_string \"AKAP: Invalid node hash\"" + }, + "value": "AKAP: Invalid node hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", + "typeString": "literal_string \"AKAP: Invalid node hash\"" + } + ], + "id": 922, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "2012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2012:46:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "2012:46:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 930, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2081:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2076:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2076:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 892, + "id": 932, + "nodeType": "Return", + "src": "2069:19:2" + } + ] + }, + "documentation": null, + "id": 934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hashOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 886, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1732:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 885, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1732:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 888, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1747:18:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1747:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1731:35:2" + }, + "returnParameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 891, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "1788:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 890, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1788:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1787:9:2" + }, + "scope": 1335, + "src": "1716:379:2", + "stateMutability": "pure", + "superFunction": 1924, + "visibility": "public" + }, + { + "body": { + "id": 1101, + "nodeType": "Block", + "src": "2184:1711:2", + "statements": [ + { + "assignments": [ + 944 + ], + "declarations": [ + { + "constant": false, + "id": 944, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2504:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2504:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 949, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 946, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2525:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 947, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2535:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 945, + "name": "hashOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 934 + ], + "referencedDeclaration": 934, + "src": "2518:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,bytes memory) pure returns (uint256)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2518:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2504:37:2" + }, + { + "assignments": [ + 951 + ], + "declarations": [ + { + "constant": false, + "id": 951, + "name": "isParentOwner", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2552:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2552:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 957, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 953, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2592:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2592:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 955, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2606:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 952, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "2573:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2573:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2552:63:2" + }, + { + "assignments": [ + 959 + ], + "declarations": [ + { + "constant": false, + "id": 959, + "name": "nodeExists", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2625:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 958, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2625:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 963, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2651:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 960, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "2643:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2643:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2625:33:2" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 964, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2673:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 966, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2706:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2706:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 968, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2720:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 965, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "2687:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:54:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3051:11:2", + "subExpression": { + "argumentTypes": null, + "id": 1004, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "3052:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1006, + "name": "isParentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "3066:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3051:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "nodeExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "3393:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1045, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3407:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1047, + "indexExpression": { + "argumentTypes": null, + "id": 1046, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3413:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3407:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3407:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1049, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "3431:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3407:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3393:41:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 1052, + "name": "isParentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 951, + "src": "3438:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3393:58:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1096, + "nodeType": "IfStatement", + "src": "3389:460:2", + "trueBody": { + "id": 1095, + "nodeType": "Block", + "src": "3453:396:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1055, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3475:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1056, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3487:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1058, + "indexExpression": { + "argumentTypes": null, + "id": 1057, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3493:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3487:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "3487:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3475:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c696420706172656e742068617368", + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3511:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + }, + "value": "AKAP: Invalid parent hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + } + ], + "id": 1054, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "3467:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3467:72:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1063, + "nodeType": "ExpressionStatement", + "src": "3467:72:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1066, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3657:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1065, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2491 + ], + "referencedDeclaration": 2491, + "src": "3649:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3649:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1068, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3666:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3666:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1070, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3680:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1064, + "name": "_transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3075 + ], + "referencedDeclaration": 3075, + "src": "3635:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3635:52:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1072, + "nodeType": "ExpressionStatement", + "src": "3635:52:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1073, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3701:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1075, + "indexExpression": { + "argumentTypes": null, + "id": 1074, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3707:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3701:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3701:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3729:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3730:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3724:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3724:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3701:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1082, + "nodeType": "ExpressionStatement", + "src": "3701:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1084, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3757:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1086, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3771:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1087, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3779:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1088, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3789:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3796:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TRANSFER", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3796:18:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 1083, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "3751:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:64:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1092, + "nodeType": "EmitStatement", + "src": "3746:69:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3837:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "functionReturnParameters": 942, + "id": 1094, + "nodeType": "Return", + "src": "3830:8:2" + } + ] + } + }, + "id": 1097, + "nodeType": "IfStatement", + "src": "3047:802:2", + "trueBody": { + "id": 1043, + "nodeType": "Block", + "src": "3081:302:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1009, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3158:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1011, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3172:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1008, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099 + ], + "referencedDeclaration": 3099, + "src": "3152:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3152:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1013, + "nodeType": "ExpressionStatement", + "src": "3152:27:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1014, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3193:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1016, + "indexExpression": { + "argumentTypes": null, + "id": 1015, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3199:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3193:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "3193:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1018, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3218:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3193:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1020, + "nodeType": "ExpressionStatement", + "src": "3193:33:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1021, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "3240:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1023, + "indexExpression": { + "argumentTypes": null, + "id": 1022, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3246:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3240:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "3240:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "3268:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3269:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3263:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3263:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3240:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "3240:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1032, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "3296:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3296:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1034, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3310:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1035, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "3318:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1036, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "3328:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1037, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "3335:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NEW", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3335:13:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 1031, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "3290:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3290:59:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1040, + "nodeType": "EmitStatement", + "src": "3285:64:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3371:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "functionReturnParameters": 942, + "id": 1042, + "nodeType": "Return", + "src": "3364:8:2" + } + ] + } + }, + "id": 1098, + "nodeType": "IfStatement", + "src": "2669:1180:2", + "trueBody": { + "id": 1003, + "nodeType": "Block", + "src": "2729:312:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 972, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2751:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 973, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "2763:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 975, + "indexExpression": { + "argumentTypes": null, + "id": 974, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2769:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2763:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 976, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "2763:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2751:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414b41503a20496e76616c696420706172656e742068617368", + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2787:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + }, + "value": "AKAP: Invalid parent hash" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", + "typeString": "literal_string \"AKAP: Invalid parent hash\"" + } + ], + "id": 971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3651, + 3652 + ], + "referencedDeclaration": 3652, + "src": "2743:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2743:72:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 980, + "nodeType": "ExpressionStatement", + "src": "2743:72:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 981, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "2894:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 983, + "indexExpression": { + "argumentTypes": null, + "id": 982, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2900:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2894:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "2894:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2922:2:2", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2923:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2917:4:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2917:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2894:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 990, + "nodeType": "ExpressionStatement", + "src": "2894:31:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 992, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "2950:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2950:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 994, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "2964:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 995, + "name": "parentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 936, + "src": "2972:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 996, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2982:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 997, + "name": "ClaimCase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1865, + "src": "2989:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeString": "type(enum IAKAP.ClaimCase)" + } + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECLAIM", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2989:17:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeString": "enum IAKAP.ClaimCase" + } + ], + "id": 991, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1883, + "src": "2944:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2944:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1000, + "nodeType": "EmitStatement", + "src": "2939:68:2" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3029:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "functionReturnParameters": 942, + "id": 1002, + "nodeType": "Return", + "src": "3022:8:2" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3887:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 942, + "id": 1100, + "nodeType": "Return", + "src": "3880:8:2" + } + ] + }, + "documentation": null, + "id": 1102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 936, + "name": "parentId", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2116:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2116:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 938, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2131:20:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 937, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2131:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2115:37:2" + }, + "returnParameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 941, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 1102, + "src": "2171:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2171:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2170:13:2" + }, + "scope": 1335, + "src": "2101:1794:2", + "stateMutability": "nonpayable", + "superFunction": 1933, + "visibility": "external" + }, + { + "body": { + "id": 1113, + "nodeType": "Block", + "src": "3959:39:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1110, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1104, + "src": "3984:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1109, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "3976:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3976:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1108, + "id": 1112, + "nodeType": "Return", + "src": "3969:22:2" + } + ] + }, + "documentation": null, + "id": 1114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3917:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3917:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3916:13:2" + }, + "returnParameters": { + "id": 1108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1107, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "3953:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1106, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3953:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3952:6:2" + }, + "scope": 1335, + "src": "3901:97:2", + "stateMutability": "view", + "superFunction": 1940, + "visibility": "external" + }, + { + "body": { + "id": 1127, + "nodeType": "Block", + "src": "4073:64:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1122, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "4109:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4109:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1124, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "4123:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1121, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2734, + "src": "4090:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4090:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1120, + "id": 1126, + "nodeType": "Return", + "src": "4083:47:2" + } + ] + }, + "documentation": null, + "id": 1128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1116, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "4031:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4031:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4030:13:2" + }, + "returnParameters": { + "id": 1120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1119, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "4067:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4067:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4066:6:2" + }, + "scope": 1335, + "src": "4004:133:2", + "stateMutability": "view", + "superFunction": 1947, + "visibility": "external" + }, + { + "body": { + "id": 1143, + "nodeType": "Block", + "src": "4224:46:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1138, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4241:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1140, + "indexExpression": { + "argumentTypes": null, + "id": 1139, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4247:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4241:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 792, + "src": "4241:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1137, + "id": 1142, + "nodeType": "Return", + "src": "4234:29:2" + } + ] + }, + "documentation": null, + "id": 1144, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1133, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4201:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1134, + "modifierName": { + "argumentTypes": null, + "id": 1132, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4188:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4188:20:2" + } + ], + "name": "parentOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1130, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "4161:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4161:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4160:13:2" + }, + "returnParameters": { + "id": 1137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1136, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "4218:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4218:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4217:6:2" + }, + "scope": 1335, + "src": "4143:127:2", + "stateMutability": "view", + "superFunction": 1961, + "visibility": "external" + }, + { + "body": { + "id": 1159, + "nodeType": "Block", + "src": "4357:44:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1154, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4374:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1155, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "4380:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4374:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "4374:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1153, + "id": 1158, + "nodeType": "Return", + "src": "4367:27:2" + } + ] + }, + "documentation": null, + "id": 1160, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "4334:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1148, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4321:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4321:20:2" + } + ], + "name": "expiryOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1146, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "4294:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4294:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4293:13:2" + }, + "returnParameters": { + "id": 1153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1152, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "4351:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1151, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4351:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4350:6:2" + }, + "scope": 1335, + "src": "4276:125:2", + "stateMutability": "view", + "superFunction": 1968, + "visibility": "external" + }, + { + "body": { + "id": 1175, + "nodeType": "Block", + "src": "4487:45:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1170, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4504:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1172, + "indexExpression": { + "argumentTypes": null, + "id": 1171, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "4510:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4504:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seeAlso", + "nodeType": "MemberAccess", + "referencedDeclaration": 796, + "src": "4504:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1169, + "id": 1174, + "nodeType": "Return", + "src": "4497:28:2" + } + ] + }, + "documentation": null, + "id": 1176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1165, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1162, + "src": "4464:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1166, + "modifierName": { + "argumentTypes": null, + "id": 1164, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4451:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4451:20:2" + } + ], + "name": "seeAlso", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1162, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1176, + "src": "4424:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1161, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4424:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4423:13:2" + }, + "returnParameters": { + "id": 1169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1176, + "src": "4481:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4481:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4480:6:2" + }, + "scope": 1335, + "src": "4407:125:2", + "stateMutability": "view", + "superFunction": 1975, + "visibility": "external" + }, + { + "body": { + "id": 1191, + "nodeType": "Block", + "src": "4624:48:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1186, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4641:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1188, + "indexExpression": { + "argumentTypes": null, + "id": 1187, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4647:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4641:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1189, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 798, + "src": "4641:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1185, + "id": 1190, + "nodeType": "Return", + "src": "4634:31:2" + } + ] + }, + "documentation": null, + "id": 1192, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1181, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4598:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1182, + "modifierName": { + "argumentTypes": null, + "id": 1180, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4585:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4585:20:2" + } + ], + "name": "seeAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1178, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1192, + "src": "4558:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1177, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4558:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4557:13:2" + }, + "returnParameters": { + "id": 1185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1184, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1192, + "src": "4615:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4615:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4614:9:2" + }, + "scope": 1335, + "src": "4538:134:2", + "stateMutability": "view", + "superFunction": 1982, + "visibility": "external" + }, + { + "body": { + "id": 1207, + "nodeType": "Block", + "src": "4767:46:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1202, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4784:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1204, + "indexExpression": { + "argumentTypes": null, + "id": 1203, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "4790:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4784:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "nodeBody", + "nodeType": "MemberAccess", + "referencedDeclaration": 800, + "src": "4784:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "functionReturnParameters": 1201, + "id": 1206, + "nodeType": "Return", + "src": "4777:29:2" + } + ] + }, + "documentation": null, + "id": 1208, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1197, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "4736:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1198, + "modifierName": { + "argumentTypes": null, + "id": 1196, + "name": "onlyExisting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "4723:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4723:20:2" + } + ], + "name": "nodeBody", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1194, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1208, + "src": "4696:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1193, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4696:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4695:13:2" + }, + "returnParameters": { + "id": 1201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1200, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1208, + "src": "4753:12:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1199, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4753:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4752:14:2" + }, + "scope": 1335, + "src": "4678:135:2", + "stateMutability": "view", + "superFunction": 1989, + "visibility": "external" + }, + { + "body": { + "id": 1231, + "nodeType": "Block", + "src": "4882:118:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1216, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "4892:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1218, + "indexExpression": { + "argumentTypes": null, + "id": 1217, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4898:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4892:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiry", + "nodeType": "MemberAccess", + "referencedDeclaration": 794, + "src": "4892:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1220, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "4915:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4892:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1222, + "nodeType": "ExpressionStatement", + "src": "4892:26:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1224, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "4950:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4950:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1226, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4964:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1227, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4972:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "EXPIRY", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4972:20:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1223, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "4933:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4933:60:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1230, + "nodeType": "EmitStatement", + "src": "4928:65:2" + } + ] + }, + "documentation": null, + "id": 1232, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1213, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "4874:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1214, + "modifierName": { + "argumentTypes": null, + "id": 1212, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "4861:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4861:20:2" + } + ], + "name": "expireNode", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1210, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1232, + "src": "4839:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1209, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4839:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4838:13:2" + }, + "returnParameters": { + "id": 1215, + "nodeType": "ParameterList", + "parameters": [], + "src": "4882:0:2" + }, + "scope": 1335, + "src": "4819:181:2", + "stateMutability": "nonpayable", + "superFunction": 2001, + "visibility": "external" + }, + { + "body": { + "id": 1257, + "nodeType": "Block", + "src": "5081:123:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1242, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5091:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1243, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5097:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5091:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "seeAlso", + "nodeType": "MemberAccess", + "referencedDeclaration": 796, + "src": "5091:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1246, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "5115:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5091:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "5091:29:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1250, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5152:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5152:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5166:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1253, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5174:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "SEE_ALSO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5174:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1249, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5135:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5135:62:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1256, + "nodeType": "EmitStatement", + "src": "5130:67:2" + } + ] + }, + "documentation": null, + "id": 1258, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1239, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "5073:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1240, + "modifierName": { + "argumentTypes": null, + "id": 1238, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5060:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5060:20:2" + } + ], + "name": "setSeeAlso", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1234, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "5026:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1236, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "5039:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5039:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5025:25:2" + }, + "returnParameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "5081:0:2" + }, + "scope": 1335, + "src": "5006:198:2", + "stateMutability": "nonpayable", + "superFunction": 2008, + "visibility": "external" + }, + { + "body": { + "id": 1283, + "nodeType": "Block", + "src": "5291:129:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1268, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5301:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1270, + "indexExpression": { + "argumentTypes": null, + "id": 1269, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5307:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5301:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "seeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 798, + "src": "5301:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1272, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5328:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5301:32:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1274, + "nodeType": "ExpressionStatement", + "src": "5301:32:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1276, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5365:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5365:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1278, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5379:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1279, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5387:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "SEE_ADDRESS", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5387:25:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1275, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5348:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5348:65:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1282, + "nodeType": "EmitStatement", + "src": "5343:70:2" + } + ] + }, + "documentation": null, + "id": 1284, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1265, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "5283:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1266, + "modifierName": { + "argumentTypes": null, + "id": 1264, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5270:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5270:20:2" + } + ], + "name": "setSeeAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1260, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "5233:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1259, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5233:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1262, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1284, + "src": "5246:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5246:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5232:28:2" + }, + "returnParameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [], + "src": "5291:0:2" + }, + "scope": 1335, + "src": "5210:210:2", + "stateMutability": "nonpayable", + "superFunction": 2015, + "visibility": "external" + }, + { + "body": { + "id": 1309, + "nodeType": "Block", + "src": "5512:125:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1294, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "5522:5:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" + } + }, + "id": 1296, + "indexExpression": { + "argumentTypes": null, + "id": 1295, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5528:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5522:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$801_storage", + "typeString": "struct AKAF.Node storage ref" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "nodeBody", + "nodeType": "MemberAccess", + "referencedDeclaration": 800, + "src": "5522:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1298, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "5547:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "src": "5522:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "5522:30:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1302, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5584:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5584:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1304, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5598:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1305, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5606:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "NODE_BODY", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5606:23:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1301, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5567:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5567:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1308, + "nodeType": "EmitStatement", + "src": "5562:68:2" + } + ] + }, + "documentation": null, + "id": 1310, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1291, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1286, + "src": "5504:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1292, + "modifierName": { + "argumentTypes": null, + "id": 1290, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5491:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5491:20:2" + } + ], + "name": "setNodeBody", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1286, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "5447:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1285, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5447:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1288, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1310, + "src": "5460:20:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1287, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5460:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:35:2" + }, + "returnParameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [], + "src": "5512:0:2" + }, + "scope": 1335, + "src": "5426:211:2", + "stateMutability": "nonpayable", + "superFunction": 2022, + "visibility": "external" + }, + { + "body": { + "id": 1333, + "nodeType": "Block", + "src": "5728:120:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1321, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5751:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1322, + "name": "uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "5759:3:2", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1320, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3414, + "src": "5738:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5738:25:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1324, + "nodeType": "ExpressionStatement", + "src": "5738:25:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1326, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 852, + "src": "5795:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5795:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1328, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5809:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1329, + "name": "NodeAttribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5817:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeString": "type(enum IAKAP.NodeAttribute)" + } + }, + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TOKEN_URI", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5817:23:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeString": "enum IAKAP.NodeAttribute" + } + ], + "id": 1325, + "name": "AttributeChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1891, + "src": "5778:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" + } + }, + "id": 1331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5778:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1332, + "nodeType": "EmitStatement", + "src": "5773:68:2" + } + ] + }, + "documentation": null, + "id": 1334, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1317, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "5720:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1318, + "modifierName": { + "argumentTypes": null, + "id": 1316, + "name": "onlyApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "5707:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5707:20:2" + } + ], + "name": "setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1312, + "name": "nodeId", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "5664:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1311, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5664:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "name": "uri", + "nodeType": "VariableDeclaration", + "scope": 1334, + "src": "5677:19:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1313, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5677:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5663:34:2" + }, + "returnParameters": { + "id": 1319, + "nodeType": "ParameterList", + "parameters": [], + "src": "5728:0:2" + }, + "scope": 1335, + "src": "5643:205:2", + "stateMutability": "nonpayable", + "superFunction": 2029, + "visibility": "external" + } + ], + "scope": 1336, + "src": "737:5113:2" + } + ], + "src": "627:5223:2" + }, + "compiler": { + "name": "solc", + "version": "0.5.16+commit.9c3226ce.Emscripten.clang" + }, + "networks": { + "5777": { + "events": { + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { + "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" + }, + "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": { + "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" + }, + "0x4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f8": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IAKAP.NodeAttribute", + "name": "attribute", + "type": "uint8" + } + ], + "name": "AttributeChanged", + "type": "event" + }, + "0x2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nodeId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "parentId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "label", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "enum IAKAP.ClaimCase", + "name": "claimCase", + "type": "uint8" + } + ], + "name": "Claim", + "type": "event" + }, + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { + "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" + } + }, + "links": {}, + "address": "0x96923dA433Be67C18D24C5D60B8d4A250D9AC66b", + "transactionHash": "0x31f48623ffd5006724ea313beecab3164036594e0108847076af65fc932e7ccf" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-05-12T10:00:23.992Z", + "devdoc": { + "methods": { + "approve(address,uint256)": { + "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", + "params": { + "to": "address to be approved for the given token ID", + "tokenId": "uint256 ID of the token to be approved" + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "address to query the balance of" + }, + "return": "uint256 representing the amount owned by the passed address" + }, + "getApproved(uint256)": { + "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", + "params": { + "tokenId": "uint256 ID of the token to query the approval of" + }, + "return": "address currently approved for the given token ID" + }, + "isApprovedForAll(address,address)": { + "details": "Tells whether an operator is approved by a given owner.", + "params": { + "operator": "operator address which you want to query the approval of", + "owner": "owner address which you want to query the approval of" + }, + "return": "bool whether the given operator is approved by the given owner" + }, + "name()": { + "details": "Gets the token name.", + "return": "string representing the token name" + }, + "ownerOf(uint256)": { + "details": "Gets the owner of the specified token ID.", + "params": { + "tokenId": "uint256 ID of the token to query the owner of" + }, + "return": "address currently marked as the owner of the given token ID" + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", + "params": { + "from": "current owner of the token", + "to": "address to receive the ownership of the given token ID", + "tokenId": "uint256 ID of the token to be transferred" + } + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", + "params": { + "_data": "bytes data to send along with a safe transfer check", + "from": "current owner of the token", + "to": "address to receive the ownership of the given token ID", + "tokenId": "uint256 ID of the token to be transferred" + } + }, + "setApprovalForAll(address,bool)": { + "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", + "params": { + "approved": "representing the status of the approval to be set", + "to": "operator address to set the approval" + } + }, + "supportsInterface(bytes4)": { + "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "symbol()": { + "details": "Gets the token symbol.", + "return": "string representing the token symbol" + }, + "tokenByIndex(uint256)": { + "details": "Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.", + "params": { + "index": "uint256 representing the index to be accessed of the tokens list" + }, + "return": "uint256 token ID at the given index of the tokens list" + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "Gets the token ID at a given index of the tokens list of the requested owner.", + "params": { + "index": "uint256 representing the index to be accessed of the requested tokens list", + "owner": "address owning the tokens list to be accessed" + }, + "return": "uint256 token ID at the given index of the tokens list owned by the requested address" + }, + "tokenURI(uint256)": { + "details": "Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.", + "params": { + "tokenId": "uint256 ID of the token to query" + } + }, + "totalSupply()": { + "details": "Gets the total amount of tokens stored by the contract.", + "return": "uint256 representing the total amount of tokens" + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", + "params": { + "from": "current owner of the token", + "to": "address to receive the ownership of the given token ID", + "tokenId": "uint256 ID of the token to be transferred" + } + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/contracts/AKAF.sol b/contracts/AKAF.sol new file mode 100644 index 0000000..5180b16 --- /dev/null +++ b/contracts/AKAF.sol @@ -0,0 +1,161 @@ +// Copyright (C) 2019 Christian Felde +// Copyright (C) 2019 Mohamed Elshami + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pragma solidity ^0.5.0; + +import "./IAKAP.sol"; +import "@openzeppelin/contracts/token/ERC721/ERC721Full.sol"; + +contract AKAF is IAKAP, ERC721Full { + struct Node { + uint parentId; + uint expiry; + uint seeAlso; + address seeAddress; + bytes nodeBody; + } + + mapping(uint => Node) private nodes; + + constructor() ERC721Full("AKA Forever Registry", "AKAF") public { + // Create the special root node and assigned msg.sender as owner + uint nodeId = 0; + _mint(_msgSender(), nodeId); + nodes[nodeId].expiry = uint(-1); + emit Claim(_msgSender(), nodeId, nodeId, "", ClaimCase.NEW); + } + + function _msgSender() internal view returns (address payable) { + return msg.sender; + } + + modifier onlyExisting(uint nodeId) { + require(_exists(nodeId), "AKAP: operator query for nonexistent node"); + + _; + } + + modifier onlyApproved(uint nodeId) { + require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId), "AKAP: set value caller is not owner nor approved"); + + _; + } + + function hashOf(uint parentId, bytes memory label) public pure returns (uint id) { + require(label.length >= 1 && label.length <= 32, "AKAP: Invalid label length"); + + bytes32 labelHash = keccak256(label); + bytes32 nodeId = keccak256(abi.encode(parentId, labelHash)); + + require(nodeId > 0, "AKAP: Invalid node hash"); + + return uint(nodeId); + } + + function claim(uint parentId, bytes calldata label) external returns (uint status) { + // Claim logic is as found in AKAP, but with an expiry timestamp set to "forever". + // Owners of a node on an AKAF contract does hence not need to reclaim their nodes. + // Node owners may still explicitly expire a node if they wish. + + // Get hash/id of the node caller is claiming + uint nodeId = hashOf(parentId, label); + + bool isParentOwner = _isApprovedOrOwner(_msgSender(), parentId); + bool nodeExists = _exists(nodeId); + + if (nodeExists && _isApprovedOrOwner(_msgSender(), nodeId)) { + require(parentId == nodes[nodeId].parentId, "AKAP: Invalid parent hash"); + + // Caller is current owner/approved, extend lease.. + nodes[nodeId].expiry = uint(-1); + emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.RECLAIM); + + return 1; + } else if (!nodeExists && isParentOwner) { + // Node does not exist, allocate to caller.. + _mint(_msgSender(), nodeId); + nodes[nodeId].parentId = parentId; + nodes[nodeId].expiry = uint(-1); + emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.NEW); + + return 2; + } else if (nodeExists && nodes[nodeId].expiry <= now && isParentOwner) { + require(parentId == nodes[nodeId].parentId, "AKAP: Invalid parent hash"); + + // Node exists and is expired, allocate to caller and extend lease.. + _transferFrom(ownerOf(nodeId), _msgSender(), nodeId); + nodes[nodeId].expiry = uint(-1); + emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.TRANSFER); + + return 3; + } + + // No action + return 0; + } + + function exists(uint nodeId) external view returns (bool) { + return _exists(nodeId); + } + + function isApprovedOrOwner(uint nodeId) external view returns (bool) { + return _isApprovedOrOwner(_msgSender(), nodeId); + } + + function parentOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) { + return nodes[nodeId].parentId; + } + + function expiryOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) { + return nodes[nodeId].expiry; + } + + function seeAlso(uint nodeId) external view onlyExisting(nodeId) returns (uint) { + return nodes[nodeId].seeAlso; + } + + function seeAddress(uint nodeId) external view onlyExisting(nodeId) returns (address) { + return nodes[nodeId].seeAddress; + } + + function nodeBody(uint nodeId) external view onlyExisting(nodeId) returns (bytes memory) { + return nodes[nodeId].nodeBody; + } + + function expireNode(uint nodeId) external onlyApproved(nodeId) { + nodes[nodeId].expiry = now; + emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.EXPIRY); + } + + function setSeeAlso(uint nodeId, uint value) external onlyApproved(nodeId) { + nodes[nodeId].seeAlso = value; + emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ALSO); + } + + function setSeeAddress(uint nodeId, address value) external onlyApproved(nodeId) { + nodes[nodeId].seeAddress = value; + emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ADDRESS); + } + + function setNodeBody(uint nodeId, bytes calldata value) external onlyApproved(nodeId) { + nodes[nodeId].nodeBody = value; + emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.NODE_BODY); + } + + function setTokenURI(uint nodeId, string calldata uri) external onlyApproved(nodeId) { + _setTokenURI(nodeId, uri); + emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.TOKEN_URI); + } +} \ No newline at end of file diff --git a/migrations/2_deploy_contracts.js b/migrations/2_deploy_contracts.js index c05577c..f489554 100644 --- a/migrations/2_deploy_contracts.js +++ b/migrations/2_deploy_contracts.js @@ -1,5 +1,7 @@ var akap = artifacts.require("AKAP"); +var akaf = artifacts.require("AKAF"); module.exports = function(deployer, network, accounts) { deployer.deploy(akap); + deployer.deploy(akaf); }; diff --git a/package.json b/package.json index 19156c0..f6a6bdc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "akap", - "version": "1.0.2", + "version": "1.1.0", "description": "AKA protocol, the LDAP of Ethereum", "files": [ "/contracts/*.sol", diff --git a/test/akaf.js b/test/akaf.js new file mode 100644 index 0000000..80114d8 --- /dev/null +++ b/test/akaf.js @@ -0,0 +1,341 @@ +// Copyright (C) 2019 Christian Felde +// Copyright (C) 2019 Mohamed Elshami + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const {expectRevert} = require('@openzeppelin/test-helpers'); + +const akaf = artifacts.require("AKAF"); + +function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +contract("When testing AKAF, it:", async accounts => { + + it("should be possible to claim a node on special case root parent id", async () => { + // This is a case 2 test with special case parent.. + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await expectRevert(instance.parentOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.expiryOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAlso(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAddress(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.nodeBody(nodeHash), "AKAP: operator query for nonexistent node"); + + assert.isFalse(await instance.exists(nodeHash)); + + await instance.claim(0x0, [0x1]); + + assert.isTrue(await instance.exists(nodeHash)); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + assert.isTrue(await instance.isApprovedOrOwner(nodeHash)); + assert.isFalse(await instance.isApprovedOrOwner(nodeHash, {from: accounts[1]})); + assert.equal(0x0, await instance.parentOf(nodeHash)); + assert.isTrue(await instance.expiryOf(nodeHash) > 0); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + + it("should only be possible for the root owner to claim new root node children", async () => { + let instance = await akaf.deployed(); + + let parentHash = 0x0; + let nodeHash = await instance.hashOf(parentHash, [0x5]); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await expectRevert(instance.parentOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.expiryOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAlso(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAddress(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.nodeBody(nodeHash), "AKAP: operator query for nonexistent node"); + + await instance.claim(parentHash, [0x5], {from: accounts[5]}); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await expectRevert(instance.parentOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.expiryOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAlso(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAddress(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.nodeBody(nodeHash), "AKAP: operator query for nonexistent node"); + + await instance.setApprovalForAll(accounts[5], true); + await instance.claim(parentHash, [0x5], {from: accounts[5]}); + + assert.equal(accounts[5], await instance.ownerOf(nodeHash)); + assert.equal(0x0, await instance.parentOf(nodeHash)); + assert.isTrue(await instance.expiryOf(nodeHash) > 0); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + + it("should be possible to claim a node on another owned node", async () => { + // This is a case 2 test with non-special parent case.. + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await expectRevert(instance.parentOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.expiryOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAlso(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAddress(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.nodeBody(nodeHash), "AKAP: operator query for nonexistent node"); + + await instance.claim(parentHash, [0x2]); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + assert.isTrue(parentHash.eq(await instance.parentOf(nodeHash))); + assert.isTrue(await instance.expiryOf(nodeHash) > 0); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + + it("should be possible for owners of node to reclaim an existing node", async () => { + // This is a case 1 test with special case parent.. + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(0x0, [0x1]); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + assert.equal(0x0, await instance.parentOf(nodeHash)); + assert.isTrue((await instance.expiryOf(nodeHash)).toString(10) === existingExpiry.toString(10)); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + + it("should be possible for owners of node to reclaim an existing node with non-special case parent", async () => { + // This is a case 1 test with non-special parent case.. + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(parentHash, [0x2]); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + assert.isTrue(parentHash.eq(await instance.parentOf(nodeHash))); + assert.isTrue((await instance.expiryOf(nodeHash)).toString(10) === existingExpiry.toString(10)); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + + it("should be possible for owners of node to update node attributes", async () => { + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + + await instance.setSeeAlso(nodeHash, 0x1); + await instance.setSeeAddress(nodeHash, accounts[1]); + await instance.setNodeBody(nodeHash, [0x1, 0x2, 0x3]); + await instance.setTokenURI(nodeHash, "akaf://abc"); + + assert.equal(0x1, await instance.seeAlso(nodeHash)); + assert.equal(accounts[1], await instance.seeAddress(nodeHash)); + assert.equal(0x010203, await instance.nodeBody(nodeHash)); + assert.equal("akaf://abc", await instance.tokenURI(nodeHash)); + }); + + it("should be possible for owners of node to reclaim without changing any node attributes", async () => { + // This is a case 1 test with special case parent.. + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + await instance.claim(0x0, [0x1]); + + assert.equal(0x1, await instance.seeAlso(nodeHash)); + assert.equal(accounts[1], await instance.seeAddress(nodeHash)); + assert.equal(0x010203, await instance.nodeBody(nodeHash)); + }); + + it("should not be possible for non-owners of a parent to reclaim an existing child node not owned by caller", async () => { + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + await instance.claim(parentHash, [0x2], {from: accounts[1]}); + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + }); + + it("should not be possible for non-owners of a parent to claim a new child node", async () => { + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x3]); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await instance.claim(parentHash, [0x3], {from: accounts[1]}); + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + }); + + it("should be possible for non-owners of a parent to reclaim an existing child node owned by them", async () => { + // This is a case 1 test.. + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + await instance.transferFrom(accounts[0], accounts[1], nodeHash); + assert.equal(accounts[1], await instance.ownerOf(nodeHash)); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(parentHash, [0x2], {from: accounts[1]}); + + assert.isTrue((await instance.expiryOf(nodeHash)).toString(10) === existingExpiry.toString(10)); + + await instance.transferFrom(accounts[1], accounts[0], nodeHash, {from: accounts[1]}); + }); + + it("should be possible for owners of node to reclaim an expired node on special case parent", async () => { + // This is a case 3 test with special case parent.. + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + await instance.expireNode(nodeHash); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(0x0, [0x1]); + + assert.isTrue((await instance.expiryOf(nodeHash)).gt(existingExpiry)); + }); + + it("should be possible for owners of node to reclaim an expired node on non-special case parent", async () => { + // This is a case 3 test.. + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + await instance.expireNode(nodeHash); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(parentHash, [0x2]); + + assert.isTrue((await instance.expiryOf(nodeHash)).gt(existingExpiry)); + }); + + it("should be possible for non-owners of node to reclaim an expired node on special case parent", async () => { + // This is a case 3 test with special case parent.. + let instance = await akaf.deployed(); + + let nodeHash = await instance.hashOf(0x0, [0x1]); + + await instance.transferFrom(accounts[0], accounts[1], nodeHash); + assert.equal(accounts[1], await instance.ownerOf(nodeHash)); + + await instance.expireNode(nodeHash, {from: accounts[1]}); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(0x0, [0x1]); + + assert.isTrue((await instance.expiryOf(nodeHash)).gt(existingExpiry)); + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + }); + + it("should be possible for non-owners of node to reclaim an expired node on non-special case parent", async () => { + // This is a case 3 test.. + let instance = await akaf.deployed(); + + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + await instance.transferFrom(accounts[0], accounts[1], nodeHash); + assert.equal(accounts[1], await instance.ownerOf(nodeHash)); + + await instance.expireNode(nodeHash, {from: accounts[1]}); + + let existingExpiry = await instance.expiryOf(nodeHash); + + await sleep(1000); + + await instance.claim(parentHash, [0x2]); + + assert.isTrue((await instance.expiryOf(nodeHash)).gt(existingExpiry)); + assert.equal(accounts[0], await instance.ownerOf(nodeHash)); + }); + + it("should only be possible to use labels within limits", async () => { + let instance = await akaf.deployed(); + + let minLength = 1; + let maxLength = 32; + + await expectRevert(instance.claim(0x0, Array.apply(null, Array(minLength - 1)).map(function (x, i) { + return i + 10; + }), {from: accounts[5]}), "AKAP: Invalid label length"); + await expectRevert(instance.claim(0x0, Array.apply(null, Array(maxLength + 1)).map(function (x, i) { + return i + 10; + }), {from: accounts[5]}), "AKAP: Invalid label length"); + + instance.claim(0x0, Array.apply(null, Array(minLength)).map(function (x, i) { + return i + 10; + }), {from: accounts[5]}); + instance.claim(0x0, Array.apply(null, Array(maxLength)).map(function (x, i) { + return i + 10; + }), {from: accounts[5]}); + + assert.equal(accounts[5], await instance.ownerOf(await instance.hashOf(0x0, Array.apply(null, Array(minLength)).map(function (x, i) { + return i + 10; + }), {from: accounts[1]}))); + assert.equal(accounts[5], await instance.ownerOf(await instance.hashOf(0x0, Array.apply(null, Array(maxLength)).map(function (x, i) { + return i + 10; + }), {from: accounts[1]}))); + }); + +}); diff --git a/test/akaf_events.js b/test/akaf_events.js new file mode 100644 index 0000000..cac9c9b --- /dev/null +++ b/test/akaf_events.js @@ -0,0 +1,192 @@ +// Copyright (C) 2019 Christian Felde +// Copyright (C) 2019 Mohamed Elshami + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const {expectEvent} = require('@openzeppelin/test-helpers'); + +const akaf = artifacts.require("AKAF"); + +contract("When testing AKAF events, it:", async accounts => { + + it("should emit a Claim event of type ClaimCase.NEW when an owner claims a node with special case parent", async () => { + // This is a case 2 test with special case parent.. + let instance = await akaf.deployed(); + let nodeHash = await instance.hashOf(0x0, [0x1]); + + let receipt = await instance.claim(0x0, [0x1]); + + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: "0", + label: "0x01", + claimCase: "1" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit a Claim of type ClaimCase.RECLAIM event when owner claim existing node with special case parent", async () => { + // This is a case 1 test with special case parent.. + let instance = await akaf.deployed(); + let nodeHash = await instance.hashOf(0x0, [0x1]); + + let receipt = await instance.claim(0x0, [0x1]); + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: "0", + label: "0x01", + claimCase: "0" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit a Claim event of type ClaimCase.NEW when an owner claims a node with non-special case parent", async () => { + // This is a case 2 test with non-special case parent.. + let instance = await akaf.deployed(); + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x1]); + + let receipt = await instance.claim(parentHash, [0x1]); + + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: parentHash.toString(), + label: "0x01", + claimCase: "1" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit a Claim of type ClaimCase.RECLAIM event when owner claim existing node with non-special case parent", async () => { + // This is a case 1 test with non-special case parent.. + let instance = await akaf.deployed(); + let parentHash = await instance.hashOf(0x0, [0x1]); + let nodeHash = await instance.hashOf(parentHash, [0x1]); + + let receipt = await instance.claim(parentHash, [0x1]); + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: parentHash.toString(), + label: "0x01", + claimCase: "0" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit a Claim of type ClaimCase.TRANSFER event when new owner claim existing node on special case owner", async () => { + // Test case 3 emits ClaimCase.TRANSFER event with special case parent.. + let instance = await akaf.deployed(); + let nodeHash = await instance.hashOf(0x0, [0x2]); + + await instance.claim(0x0, [0x2]); + await instance.transferFrom(accounts[0], accounts[1], nodeHash); + + let receipt = await instance.claim(0x0, [0x2]); + assert.equal(0, receipt.logs.length, "No events should be emitted, expect empty logs."); + + await instance.expireNode(nodeHash, {from: accounts[1]}); + + receipt = await instance.claim(0x0, [0x2]); + + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: "0", + label: "0x02", + claimCase: "2" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit a Claim of type ClaimCase.TRANSFER event when new owner claim existing node on non-special case owner", async () => { + // Test case 3 emits ClaimCase.TRANSFER event with non-special case parent.. + let instance = await akaf.deployed(); + let parentHash = await instance.hashOf(0x0, [0x2]) + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + await instance.claim(parentHash, [0x2]); + await instance.transferFrom(accounts[0], accounts[1], nodeHash); + + let receipt = await instance.claim(parentHash, [0x2]); + assert.equal(0, receipt.logs.length, "No events should be emitted, expect empty logs."); + + await instance.expireNode(nodeHash, {from: accounts[1]}); + + receipt = await instance.claim(parentHash, [0x2]); + + let args = { + sender: accounts[0].toString(), + nodeId: nodeHash.toString(), + parentId: parentHash.toString(), + label: "0x02", + claimCase: "2" + }; + await expectEvent.inLogs(receipt.logs, "Claim", args); + }); + + it("should emit AttributeChanged event when a node attribute is updated with special case parent", async () => { + let instance = await akaf.deployed(); + let nodeHash = await instance.hashOf(0x0, [0x1]); + + let receipt = await instance.expireNode(nodeHash); + let args = {sender: accounts[0].toString(), nodeId: nodeHash.toString(), attribute: "0"}; // NodeAttribute.EXPIRY + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setSeeAlso(nodeHash, 0x1); + args["attribute"] = "1"; // NodeAttribute.SEE_ALSO + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setSeeAddress(nodeHash, accounts[1]); + args["attribute"] = "2"; // NodeAttribute.SEE_ADDRESS + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setNodeBody(nodeHash, [0x1, 0x2, 0x3]); + args["attribute"] = "3"; // NodeAttribute.NODE_BODY + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setTokenURI(nodeHash, "akaf://abc"); + args["attribute"] = "4"; // NodeAttribute.TOKEN_URI + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + }); + + it("should emit AttributeChanged event when a node attribute is updated with non-special case parent", async () => { + let instance = await akaf.deployed(); + let parentHash = await instance.hashOf(0x0, [0x2]); + let nodeHash = await instance.hashOf(parentHash, [0x2]); + + let receipt = await instance.expireNode(nodeHash); + let args = {sender: accounts[0].toString(), nodeId: nodeHash.toString(), attribute: "0"}; // NodeAttribute.EXPIRY + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setSeeAlso(nodeHash, 0x1); + args["attribute"] = "1"; // NodeAttribute.SEE_ALSO + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setSeeAddress(nodeHash, accounts[1]); + args["attribute"] = "2"; // NodeAttribute.SEE_ADDRESS + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setNodeBody(nodeHash, [0x1, 0x2, 0x3]); + args["attribute"] = "3"; // NodeAttribute.NODE_BODY + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + + receipt = await instance.setTokenURI(nodeHash, "akaf://abc"); + args["attribute"] = "4"; // NodeAttribute.TOKEN_URI + await expectEvent.inLogs(receipt.logs, "AttributeChanged", args); + }); + +}); diff --git a/test/akap.js b/test/akap.js index 9ff7ba9..1e18cd2 100644 --- a/test/akap.js +++ b/test/akap.js @@ -53,6 +53,30 @@ contract("When testing AKAP, it:", async accounts => { assert.equal(null, await instance.nodeBody(nodeHash)); }); + it("should be possible for any account to claim new root node children", async () => { + let instance = await akap.deployed(); + + let parentHash = 0x0; + let nodeHash = await instance.hashOf(parentHash, [0x5]); + + await expectRevert(instance.ownerOf(nodeHash), "ERC721: owner query for nonexistent token"); + await expectRevert(instance.parentOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.expiryOf(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAlso(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.seeAddress(nodeHash), "AKAP: operator query for nonexistent node"); + await expectRevert(instance.nodeBody(nodeHash), "AKAP: operator query for nonexistent node"); + + await instance.claim(parentHash, [0x5], {from: accounts[5]}); + + assert.equal(accounts[5], await instance.ownerOf(nodeHash)); + assert.equal(0x0, await instance.parentOf(nodeHash)); + assert.isTrue(await instance.expiryOf(nodeHash) > 0); + + assert.equal(0x0, await instance.seeAlso(nodeHash)); + assert.equal(0x0, await instance.seeAddress(nodeHash)); + assert.equal(null, await instance.nodeBody(nodeHash)); + }); + it("should be possible to claim a node on another owned node", async () => { // This is a case 2 test with non-special parent case.. let instance = await akap.deployed(); From b36c04791e81660c753f1d776eba444169e046f9 Mon Sep 17 00:00:00 2001 From: Christian Felde Date: Wed, 13 May 2020 15:41:12 +0100 Subject: [PATCH 15/15] Enforce behavior of node zero (special case root node) in AKAF to be similar to AKAP even when the node otherwise exists for admin purposes --- build/contracts/AKAF.json | 7107 +++++++++++++++++++------------------ contracts/AKAF.sol | 6 +- package.json | 2 +- 3 files changed, 3692 insertions(+), 3423 deletions(-) diff --git a/build/contracts/AKAF.json b/build/contracts/AKAF.json index ad917ac..fa13117 100644 --- a/build/contracts/AKAF.json +++ b/build/contracts/AKAF.json @@ -782,25 +782,25 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.NodeAttribute\",\"name\":\"attribute\",\"type\":\"uint8\"}],\"name\":\"AttributeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.ClaimCase\",\"name\":\"claimCase\",\"type\":\"uint8\"}],\"name\":\"Claim\",\"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\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expireNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expiryOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"hashOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"nodeBody\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"parentOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAlso\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setNodeBody\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setSeeAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setSeeAlso\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.\",\"params\":{\"to\":\"address to be approved for the given token ID\",\"tokenId\":\"uint256 ID of the token to be approved\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"address to query the balance of\"},\"return\":\"uint256 representing the amount owned by the passed address\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the approval of\"},\"return\":\"address currently approved for the given token ID\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner.\",\"params\":{\"operator\":\"operator address which you want to query the approval of\",\"owner\":\"owner address which you want to query the approval of\"},\"return\":\"bool whether the given operator is approved by the given owner\"},\"name()\":{\"details\":\"Gets the token name.\",\"return\":\"string representing the token name\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the owner of\"},\"return\":\"address currently marked as the owner of the given token ID\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\",\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.\",\"params\":{\"approved\":\"representing the status of the approval to be set\",\"to\":\"operator address to set the approval\"}},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Gets the token symbol.\",\"return\":\"string representing the token symbol\"},\"tokenByIndex(uint256)\":{\"details\":\"Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the tokens list\"},\"return\":\"uint256 token ID at the given index of the tokens list\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Gets the token ID at a given index of the tokens list of the requested owner.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the requested tokens list\",\"owner\":\"address owning the tokens list to be accessed\"},\"return\":\"uint256 token ID at the given index of the tokens list owned by the requested address\"},\"tokenURI(uint256)\":{\"details\":\"Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query\"}},\"totalSupply()\":{\"details\":\"Gets the total amount of tokens stored by the contract.\",\"return\":\"uint256 representing the total amount of tokens\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":\"AKAF\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":{\"keccak256\":\"0xccf25695c05e171710ff23fcf8c92e51ed30ef8df2e01a546eae1200d0a69a40\",\"urls\":[\"bzz-raw://eaeb36df9e6b23870d3f6804cb7f95546d276ab7ad3211cb81c59ec59cadd795\",\"dweb:/ipfs/QmSKrLHtEiUhCNyzcGZHs2yjfLDNRrUxP3yJfHF1Z9R4Na\"]},\"/private/tmp/eth/akap/contracts/IAKAP.sol\":{\"keccak256\":\"0x2163f1519406e467ca39601ce7dfed73d104b3da8bdd0146bd6ca2d14388276a\",\"urls\":[\"bzz-raw://2e4395653541d8e0a6a5bad617a3b7af3efcd8fdea988edf4c7644aabbb8e6b0\",\"dweb:/ipfs/QmPDi6uqVTLCp1v725r2qfC5GNsiGCwbMCpZWSjc34u1Ek\"]},\"@openzeppelin/contracts/drafts/Counters.sol\":{\"keccak256\":\"0x5eb69360d3441ab2ee799bd7c007cccbffb0896f12b2dfe1456193e2aa180a11\",\"urls\":[\"bzz-raw://072e8b5a1b5acfc2acba9b6fb87d1dc57065aad44572617ad46b014074969eb3\",\"dweb:/ipfs/QmVTDHUriaxBJqiWCWgWC8vYaYYfXSz883LsowzTx1DcpK\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xac2eacd7e7762e275442f28f21d821544df5aae2ed7698af13be8c41b7005e2e\",\"urls\":[\"bzz-raw://8bdbefb642e7b08535c66bbf074e576cfef2300cdf910c1e0b211f6393833a28\",\"dweb:/ipfs/QmQhfx2Ufr8a2gFXm3KogL66xGgAuAWMwcamkWFKGG6Vya\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzz-raw://b40442c5b350b57b88a081a1eacd2bac962d4ecc1f029f5447a18986f08f6f14\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xd1804d04fb39689453f673601429a99a0c68c422a981fc338773df9a59180fe9\",\"urls\":[\"bzz-raw://1b9307920e0378d58c6677f8952ad090a9ecb30e878835e301a0d18386a870c1\",\"dweb:/ipfs/QmYYixTDVF4FXqFpYzEcufAwEY9BFBJ33Ew9ncsGvD7btC\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf151df411bbf4eaef1fc8e8480cd10c2cd985f1a36517e63981517610213efc1\",\"urls\":[\"bzz-raw://2a277b3cc3a1a03af5c039bc75cd16bb2d23b529cb2564cc0bea1b1e0eb4dd68\",\"dweb:/ipfs/QmNRxggY8qmjjuLnxggRqE8uBueuCktLwi9YYHagWoaEJ8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\":{\"keccak256\":\"0xb42cb5a7471d98114af8f7050e7d08dfd543f432713a8aee72a45ce9485f5bed\",\"urls\":[\"bzz-raw://324b8d35f37d91fd863130a6e4b83d55b8b95264af011a008ec03e084ac91b75\",\"dweb:/ipfs/QmWY61QSSJPkgDb2WZR1unTfuSrd5jBp2tC7RrCrQxC9CL\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\":{\"keccak256\":\"0x908d0d6fd8d30cffb1fe9fce1f7db6802cb885fbe88d2f170539e8dcc6afa946\",\"urls\":[\"bzz-raw://ed5f7883e2a50b3efeaae764c77152bef9d3d9965832ef095c94e79c2e887257\",\"dweb:/ipfs/QmaLRQ1ziLAo18gvM2EbKhvHC3ys4333mTxCFfoEJ8AodY\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\":{\"keccak256\":\"0xe5e28b1a405164faa98f8ecd8ed2b00907b89e3d58b2b2bb8ac8b12bc5714489\",\"urls\":[\"bzz-raw://0d5d3f0caa7e7ec91f8a2894e1a6a3513a0c79aa91a498ebf8fdbdd07c12286f\",\"dweb:/ipfs/QmP7r4jQMRxXb5JHy5V9bgMz5FmTezcSDd7ivyzJN88pTR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xce48937a8007c580b8e2e35705738c922dd17540de89ebee6df06d2917a3f9fc\",\"urls\":[\"bzz-raw://1d117265103ee3efcd454d3aafb3e79a115f9bca6dec78a1229558eb30d14d05\",\"dweb:/ipfs/QmTm5Z1c7zzPiG3Cfj1eBMB23AeiEFGgvmTFQVaeEWXVCw\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x5c573acd6c7b98d71f3c1c44d63dc17400b0fd7b26a52c9fded43b8b533dc4ec\",\"urls\":[\"bzz-raw://e23af54444d2dbfae58895339eb7b189e1ba5d0b7abde63716e7ef7da23b2fde\",\"dweb:/ipfs/QmZva7dE1SMd1yyizzc6ivSoBXXwpNveLV7iFNATNpq68Y\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x2b2b99dc7fe8fcd1f9427d00822b99cbc683dc21f5dd7532bd7e2281fd2c2ca2\",\"urls\":[\"bzz-raw://a8024c00e34efaf328f9592e76823c79f25fa0f6006bdf4a1e7fea204afd4773\",\"dweb:/ipfs/QmZns9jTr7843njq3J2iL2LLoWXK5mdzN1bDGd9GL3ahhD\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xadbfb7028fb0f851dc848a48b9e54e7c89ffd2c2edc12fa4ba9bb383dfaa83d9\",\"urls\":[\"bzz-raw://90dceab42713246639100b87d6650037d68e4a2ab2dd4b5768c3ed35d6b3a4a0\",\"dweb:/ipfs/QmQ42UW5nchMoYP9bU9F1AJga5chG8j92fCPkURpiDKsCu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzz-raw://75ae8d04454d1511a2ed986cc8585736f05c5c25280683b3d24712a9f414a4bf\",\"dweb:/ipfs/Qmb3kNCoBUZdah1AgBBD4zMk898j5Qw8ahT1w5cCMYp5Y3\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252601481527f414b4120466f72657665722052656769737472790000000000000000000000006020808301919091528251808401909352600483526320a5a0a360e11b908301529081816200007f6301ffc9a760e01b6001600160e01b03620001c316565b6200009a6380ac58cd60e01b6001600160e01b03620001c316565b620000b563780e9d6360e01b6001600160e01b03620001c316565b8151620000ca90600990602085019062000482565b508051620000e090600a90602084019062000482565b50620000fc635b5e139f60e01b6001600160e01b03620001c316565b50600092506200012c91506200011c90506001600160e01b036200024816565b826001600160e01b036200024d16565b6000818152600c602052604090206000196001909101558080620001586001600160e01b036200024816565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e600160405180806020018360028111156200019957fe5b60ff1681526020018281038252600081526020016020019250505060405180910390a45062000524565b6001600160e01b0319808216141562000223576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b335b90565b6200026482826200029160201b62001f6e1760201c565b6200027982826001600160e01b03620003da16565b6200028d816001600160e01b036200041816565b5050565b6001600160a01b038216620002ed576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b62000301816001600160e01b036200045c16565b1562000354576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600382529091206200039e9162000479811b6200213d17901c565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b6000908152600160205260409020546001600160a01b0316151590565b80546001019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c557805160ff1916838001178555620004f5565b82800160010185558215620004f5579182015b82811115620004f5578251825591602001919060010190620004d8565b506200050392915062000507565b5090565b6200024a91905b808211156200050357600081556001016200050e565b6125dd80620005346000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b7b565b610398610c5e565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c64565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cb9565b6102226004803603602081101561042257600080fd5b5035610d38565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e22565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b03166111e3565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112af565b6102066004803603602081101561051657600080fd5b50356112ca565b6103986004803603602081101561053357600080fd5b50356112db565b6102066004803603602081101561055057600080fd5b5035611341565b6102b46004803603602081101561056d57600080fd5b5035611354565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113a8565b610398600480360360208110156105b057600080fd5b5035611410565b6102fc600480360360408110156105cd57600080fd5b508035906020013561146e565b61022261150c565b6102fc600480360360408110156105f857600080fd5b506001600160a01b038135169060200135151561156d565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b509092509050611639565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116e0945050505050565b6102b46004803603602081101561075f57600080fd5b5035611738565b6103986004803603602081101561077c57600080fd5b503561179f565b6102226004803603602081101561079957600080fd5b50356117fd565b610398600480360360208110156107b657600080fd5b50356118e2565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061193d945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611a32565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611a60565b6109925760405162461bcd60e51b815260040180806020018281038252602c815260200180612432602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611354565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b815260040180806020018281038252602181526020018061252b6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611a32565b610a635760405162461bcd60e51b81526004018080602001828103825260388152602001806123a76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611a60565b8015610ae15750610ae1610adb611a7d565b82611a81565b610b1c5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b3a611a7d565b6001600160a01b03166000805160206124b3833981519152600060405180826004811115610b6457fe5b60ff16815260200191505060405180910390a35050565b82610b8581611a60565b8015610b975750610b97610adb611a7d565b610bd25760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b610c128484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1d92505050565b83610c1b611a7d565b6001600160a01b03166000805160206124b3833981519152600460405180826004811115610c4557fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c6e3382611a81565b610ca95760405162461bcd60e51b815260040180806020018281038252603181526020018061254c6031913960400191505060405180910390fd5b610cb4838383611b80565b505050565b6000610cc4836113a8565b8210610d015760405162461bcd60e51b815260040180806020018281038252602b8152602001806122ca602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d2557fe5b9060005260206000200154905092915050565b606081610d4481611a60565b610d7f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b5050505050915050919050565b600080610e658585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061193d92505050565b90506000610e7a610e74611a7d565b87611a81565b90506000610e8783611a60565b9050808015610ea25750610ea2610e9c611a7d565b84611a81565b15610fb2576000838152600c60205260409020548714610f05576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f26611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f6857fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600193505050506111dc565b80158015610fbd5750815b1561108357610fd3610fcd611a7d565b84611b9f565b6000838152600c602052604090208781556000196001909101558683610ff7611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561103957fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600293505050506111dc565b8080156110a157506000838152600c60205260409020600101544210155b80156110aa5750815b156111d4576000838152600c6020526040902054871461110d576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61112761111984611354565b611121611a7d565b85611b80565b6000838152600c602052604090206000196001909101558683611148611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896002604051808060200183600281111561118a57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600393505050506111dc565b600093505050505b9392505050565b816111ed81611a60565b80156111ff57506111ff610adb611a7d565b61123a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261126d611a7d565b6001600160a01b03166000805160206124b383398151915260026040518082600481111561129757fe5b60ff16815260200191505060405180910390a3505050565b610cb4838383604051806020016040528060008152506116e0565b60006112d582611a60565b92915050565b60006112e5610c5e565b82106113225760405162461bcd60e51b815260040180806020018281038252602c81526020018061257d602c913960400191505060405180910390fd5b6007828154811061132f57fe5b90600052602060002001549050919050565b60006112d561134e611a7d565b83611a81565b6000818152600160205260408120546001600160a01b0316806112d55760405162461bcd60e51b81526004018080602001828103825260298152602001806124096029913960400191505060405180910390fd5b60006001600160a01b0382166113ef5760405162461bcd60e51b815260040180806020018281038252602a8152602001806123df602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206112d590611bc0565b60008161141c81611a60565b6114575760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b8161147881611a60565b801561148a575061148a610adb611a7d565b6114c55760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c60205260409020600201829055826114e2611a7d565b6001600160a01b03166000805160206124b383398151915260016040518082600481111561129757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b0382163314156115cb576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261164381611a60565b80156116555750611655610adb611a7d565b6116905760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000848152600c602052604090206116ac9060040184846121a3565b50836116b6611a7d565b6001600160a01b03166000805160206124b3833981519152600360405180826004811115610c4557fe5b6116eb848484610c64565b6116f784848484611bc4565b6117325760405162461bcd60e51b81526004018080602001828103825260328152602001806122f56032913960400191505060405180910390fd5b50505050565b60008161174481611a60565b61177f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b6000816117ab81611a60565b6117e65760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061180882611a60565b6118435760405162461bcd60e51b815260040180806020018281038252602f8152602001806124d3602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156118d65780601f106118ab576101008083540402835291602001916118d6565b820191906000526020600020905b8154815290600101906020018083116118b957829003601f168201915b50505050509050919050565b6000816118ee81611a60565b6119295760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b6000600182511015801561195357506020825111155b6119a4576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611a2a576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611a8c82611a60565b611ac75760405162461bcd60e51b815260040180806020018281038252602c81526020018061237b602c913960400191505060405180910390fd5b6000611ad283611354565b9050806001600160a01b0316846001600160a01b03161480611b0d5750836001600160a01b0316611b028461094c565b6001600160a01b0316145b80611a2a5750611a2a8185611a32565b611b2682611a60565b611b615760405162461bcd60e51b815260040180806020018281038252602c81526020018061245e602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610cb492840190612221565b611b8b838383611cf7565b611b958382611e3b565b610cb48282611f30565b611ba98282611f6e565b611bb38282611f30565b611bbc8161209f565b5050565b5490565b6000611bd8846001600160a01b03166120e3565b611be457506001611a2a565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611cad57600080fd5b505af1158015611cc1573d6000803e3d6000fd5b505050506040513d6020811015611cd757600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d0a82611354565b6001600160a01b031614611d4f5760405162461bcd60e51b815260040180806020018281038252602981526020018061248a6029913960400191505060405180910390fd5b6001600160a01b038216611d945760405162461bcd60e51b81526004018080602001828103825260248152602001806123576024913960400191505060405180910390fd5b611d9d816120e9565b6001600160a01b0383166000908152600360205260409020611dbe90612126565b6001600160a01b0382166000908152600360205260409020611ddf9061213d565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611e6590600163ffffffff61214616565b600083815260066020526040902054909150808214611f00576001600160a01b0384166000908152600560205260408120805484908110611ea257fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611ee057fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611f2990600019830161228f565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b038216611fc9576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611fd281611a60565b15612024576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120639061213d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b03161561212357600081815260026020526040902080546001600160a01b03191690555b50565b805461213990600163ffffffff61214616565b9055565b80546001019055565b60008282111561219d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121e45782800160ff19823516178555612211565b82800160010185558215612211579182015b828111156122115782358255916020019190600101906121f6565b5061221d9291506122af565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226257805160ff1916838001178555612211565b82800160010185558215612211579182015b82811115612211578251825591602001919060010190612274565b815481835581811115610cb457600083815260209020610cb49181019083015b61094991905b8082111561221d57600081556001016122b556fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a723158207fdec2ead15da3a47a6194c8e8bf8e2b17f464aa3e3a6b7a39c1d49a3bb55f9464736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b7b565b610398610c5e565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c64565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cb9565b6102226004803603602081101561042257600080fd5b5035610d38565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e22565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b03166111e3565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112af565b6102066004803603602081101561051657600080fd5b50356112ca565b6103986004803603602081101561053357600080fd5b50356112db565b6102066004803603602081101561055057600080fd5b5035611341565b6102b46004803603602081101561056d57600080fd5b5035611354565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113a8565b610398600480360360208110156105b057600080fd5b5035611410565b6102fc600480360360408110156105cd57600080fd5b508035906020013561146e565b61022261150c565b6102fc600480360360408110156105f857600080fd5b506001600160a01b038135169060200135151561156d565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b509092509050611639565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116e0945050505050565b6102b46004803603602081101561075f57600080fd5b5035611738565b6103986004803603602081101561077c57600080fd5b503561179f565b6102226004803603602081101561079957600080fd5b50356117fd565b610398600480360360208110156107b657600080fd5b50356118e2565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061193d945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611a32565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611a60565b6109925760405162461bcd60e51b815260040180806020018281038252602c815260200180612432602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611354565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b815260040180806020018281038252602181526020018061252b6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611a32565b610a635760405162461bcd60e51b81526004018080602001828103825260388152602001806123a76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611a60565b8015610ae15750610ae1610adb611a7d565b82611a81565b610b1c5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b3a611a7d565b6001600160a01b03166000805160206124b3833981519152600060405180826004811115610b6457fe5b60ff16815260200191505060405180910390a35050565b82610b8581611a60565b8015610b975750610b97610adb611a7d565b610bd25760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b610c128484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1d92505050565b83610c1b611a7d565b6001600160a01b03166000805160206124b3833981519152600460405180826004811115610c4557fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c6e3382611a81565b610ca95760405162461bcd60e51b815260040180806020018281038252603181526020018061254c6031913960400191505060405180910390fd5b610cb4838383611b80565b505050565b6000610cc4836113a8565b8210610d015760405162461bcd60e51b815260040180806020018281038252602b8152602001806122ca602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d2557fe5b9060005260206000200154905092915050565b606081610d4481611a60565b610d7f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b5050505050915050919050565b600080610e658585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061193d92505050565b90506000610e7a610e74611a7d565b87611a81565b90506000610e8783611a60565b9050808015610ea25750610ea2610e9c611a7d565b84611a81565b15610fb2576000838152600c60205260409020548714610f05576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f26611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f6857fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600193505050506111dc565b80158015610fbd5750815b1561108357610fd3610fcd611a7d565b84611b9f565b6000838152600c602052604090208781556000196001909101558683610ff7611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561103957fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600293505050506111dc565b8080156110a157506000838152600c60205260409020600101544210155b80156110aa5750815b156111d4576000838152600c6020526040902054871461110d576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61112761111984611354565b611121611a7d565b85611b80565b6000838152600c602052604090206000196001909101558683611148611a7d565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896002604051808060200183600281111561118a57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a4600393505050506111dc565b600093505050505b9392505050565b816111ed81611a60565b80156111ff57506111ff610adb611a7d565b61123a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261126d611a7d565b6001600160a01b03166000805160206124b383398151915260026040518082600481111561129757fe5b60ff16815260200191505060405180910390a3505050565b610cb4838383604051806020016040528060008152506116e0565b60006112d582611a60565b92915050565b60006112e5610c5e565b82106113225760405162461bcd60e51b815260040180806020018281038252602c81526020018061257d602c913960400191505060405180910390fd5b6007828154811061132f57fe5b90600052602060002001549050919050565b60006112d561134e611a7d565b83611a81565b6000818152600160205260408120546001600160a01b0316806112d55760405162461bcd60e51b81526004018080602001828103825260298152602001806124096029913960400191505060405180910390fd5b60006001600160a01b0382166113ef5760405162461bcd60e51b815260040180806020018281038252602a8152602001806123df602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206112d590611bc0565b60008161141c81611a60565b6114575760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b8161147881611a60565b801561148a575061148a610adb611a7d565b6114c55760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000838152600c60205260409020600201829055826114e2611a7d565b6001600160a01b03166000805160206124b383398151915260016040518082600481111561129757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b0382163314156115cb576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261164381611a60565b80156116555750611655610adb611a7d565b6116905760405162461bcd60e51b81526004018080602001828103825260308152602001806123276030913960400191505060405180910390fd5b6000848152600c602052604090206116ac9060040184846121a3565b50836116b6611a7d565b6001600160a01b03166000805160206124b3833981519152600360405180826004811115610c4557fe5b6116eb848484610c64565b6116f784848484611bc4565b6117325760405162461bcd60e51b81526004018080602001828103825260328152602001806122f56032913960400191505060405180910390fd5b50505050565b60008161174481611a60565b61177f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b6000816117ab81611a60565b6117e65760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061180882611a60565b6118435760405162461bcd60e51b815260040180806020018281038252602f8152602001806124d3602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156118d65780601f106118ab576101008083540402835291602001916118d6565b820191906000526020600020905b8154815290600101906020018083116118b957829003601f168201915b50505050509050919050565b6000816118ee81611a60565b6119295760405162461bcd60e51b81526004018080602001828103825260298152602001806125026029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b6000600182511015801561195357506020825111155b6119a4576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611a2a576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611a8c82611a60565b611ac75760405162461bcd60e51b815260040180806020018281038252602c81526020018061237b602c913960400191505060405180910390fd5b6000611ad283611354565b9050806001600160a01b0316846001600160a01b03161480611b0d5750836001600160a01b0316611b028461094c565b6001600160a01b0316145b80611a2a5750611a2a8185611a32565b611b2682611a60565b611b615760405162461bcd60e51b815260040180806020018281038252602c81526020018061245e602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610cb492840190612221565b611b8b838383611cf7565b611b958382611e3b565b610cb48282611f30565b611ba98282611f6e565b611bb38282611f30565b611bbc8161209f565b5050565b5490565b6000611bd8846001600160a01b03166120e3565b611be457506001611a2a565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611c5e578181015183820152602001611c46565b50505050905090810190601f168015611c8b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611cad57600080fd5b505af1158015611cc1573d6000803e3d6000fd5b505050506040513d6020811015611cd757600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d0a82611354565b6001600160a01b031614611d4f5760405162461bcd60e51b815260040180806020018281038252602981526020018061248a6029913960400191505060405180910390fd5b6001600160a01b038216611d945760405162461bcd60e51b81526004018080602001828103825260248152602001806123576024913960400191505060405180910390fd5b611d9d816120e9565b6001600160a01b0383166000908152600360205260409020611dbe90612126565b6001600160a01b0382166000908152600360205260409020611ddf9061213d565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611e6590600163ffffffff61214616565b600083815260066020526040902054909150808214611f00576001600160a01b0384166000908152600560205260408120805484908110611ea257fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611ee057fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611f2990600019830161228f565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b038216611fc9576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611fd281611a60565b15612024576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120639061213d565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b03161561212357600081815260026020526040902080546001600160a01b03191690555b50565b805461213990600163ffffffff61214616565b9055565b80546001019055565b60008282111561219d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121e45782800160ff19823516178555612211565b82800160010185558215612211579182015b828111156122115782358255916020019190600101906121f6565b5061221d9291506122af565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061226257805160ff1916838001178555612211565b82800160010185558215612211579182015b82811115612211578251825591602001919060010190612274565b815481835581811115610cb457600083815260209020610cb49181019083015b61094991905b8082111561221d57600081556001016122b556fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a723158207fdec2ead15da3a47a6194c8e8bf8e2b17f464aa3e3a6b7a39c1d49a3bb55f9464736f6c63430005100032", - "sourceMap": "737:5113:2:-;;;963:316;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;452:155:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;452:155:12;;;;;;;718:40:7;-1:-1:-1;;;;;;;;718:18:7;:40;:::i;:::-;2220::10;-1:-1:-1;;;;;;;;2220:18:10;:40;:::i;:::-;1316:51:11;-1:-1:-1;;;;;;;;1316:18:11;:51;:::i;:::-;825:12:13;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;847:16:13;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;951:49:13;-1:-1:-1;;;;;;;;951:18:13;:49;:::i;:::-;-1:-1:-1;1110:11:2;;-1:-1:-1;1135:27:2;;-1:-1:-1;1141:12:2;;-1:-1:-1;;;;;;1141:10:2;:12;:::i;:::-;1155:6;-1:-1:-1;;;;;1135:5:2;:27;:::i;:::-;1172:13;;;;:5;:13;;;;;-1:-1:-1;;1172:20:2;;;;:31;1178:6;;1224:12;-1:-1:-1;;;;;1224:10:2;:12;:::i;:::-;-1:-1:-1;;;;;1218:54:2;;1258:13;1218:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;963:316;737:5113;;1442:190:7;-1:-1:-1;;;;;;1517:25:7;;;;;1509:66;;;;;-1:-1:-1;;;1509:66:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1585:33:7;:20;:33;;;;;;;;;;:40;;-1:-1:-1;;1585:40:7;1621:4;1585:40;;;1442:190::o;1285:96:2:-;1364:10;1285:96;;:::o;3629:196:11:-;3692:24;3704:2;3708:7;3692:11;;;;;:24;;:::i;:::-;3727:40;3755:2;3759:7;-1:-1:-1;;;;;3727:27:11;:40;:::i;:::-;3778;3810:7;-1:-1:-1;;;;;3778:31:11;:40;:::i;:::-;3629:196;;:::o;9179:327:10:-;-1:-1:-1;;;;;9250:16:10;;9242:61;;;;;-1:-1:-1;;;9242:61:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;-1:-1:-1;;;;;9322:7:10;:16;:::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:10;-1:-1:-1;;;;;9382:25:10;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;;;;;:33;;:::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:10;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5087:183:11:-;-1:-1:-1;;;;;5200:16:11;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:11;;;;;;;;5087:183::o;5465:161::-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:11;;;;;;;5465:161::o;8092:152:10:-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:10;8218:19;;;8092:152::o;1181:89:6:-;1244:19;;1262:1;1244:19;;;1181:89::o;737:5113:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5113:2;;;-1:-1:-1;737:5113:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "737:5113:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;737:5113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:133:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;915:133:7;-1:-1:-1;;;;;;915:133:7;;:::i;:::-;;;;;;;;;;;;;;;;;;1112:83:13;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1112:83:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4237:200:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4237:200:10;;:::i;:::-;;;;-1:-1:-1;;;;;4237:200:10;;;;;;;;;;;;;;3541:411;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3541:411:10;;;;;;;;:::i;:::-;;4819:181:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4819:181:2;;:::i;5643:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5643:205:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5643:205:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5643:205:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5643:205:2;;-1:-1:-1;5643:205:2;-1:-1:-1;5643:205:2;:::i;2130:94:11:-;;;:::i;:::-;;;;;;;;;;;;;;;;5877:285:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5877:285:10;;;;;;;;;;;;;;;;;:::i;1748:229:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1748:229:11;;;;;;;;:::i;4678:135:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4678:135:2;;:::i;2101:1794::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2101:1794:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2101:1794:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2101:1794:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;2101:1794:2;;-1:-1:-1;2101:1794:2;-1:-1:-1;2101:1794:2;:::i;5210:210::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5210:210:2;;;;;;-1:-1:-1;;;;;5210:210:2;;:::i;6795:132:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6795:132:10;;;;;;;;;;;;;;;;;:::i;3901:97:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3901:97:2;;:::i;2562:196:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2562:196:11;;:::i;4004:133:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4004:133:2;;:::i;2897:223:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2897:223:10;;:::i;2471:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2471:207:10;-1:-1:-1;;;;;2471:207:10;;:::i;4407:125:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4407:125:2;;:::i;5006:198::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5006:198:2;;;;;;;:::i;1304:87:13:-;;;:::i;4730:243:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4730:243:10;;;;;;;;;;:::i;5426:211:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5426:211:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5426:211:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5426:211:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5426:211:2;;-1:-1:-1;5426:211:2;-1:-1:-1;5426:211:2;:::i;7632:265:10:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;7632:265:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7632:265:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7632:265:10;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7632:265:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7632:265:10;;-1:-1:-1;7632:265:10;;-1:-1:-1;;;;;7632:265:10:i;4538:134:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4538:134:2;;:::i;4276:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4276:125:2;;:::i;1591:202:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1591:202:13;;:::i;4143:127:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4143:127:2;;:::i;1716:379::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1716:379:2;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1716:379:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1716:379:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1716:379:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1716:379:2;;-1:-1:-1;1716:379:2;;-1:-1:-1;;;;;1716:379:2:i;5295:145:10:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5295:145:10;;;;;;;;;;:::i;915:133:7:-;-1:-1:-1;;;;;;1008:33:7;985:4;1008:33;;;;;;;;;;;;;;915:133::o;1112:83:13:-;1183:5;1176:12;;;;;;;;-1:-1:-1;;1176:12:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:13;;1176:12;;1183:5;;1176:12;;1183:5;1176:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:83;;:::o;4237:200:10:-;4296:7;4323:16;4331:7;4323;:16::i;:::-;4315:73;;;;-1:-1:-1;;;4315:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4406:24:10;;;;:15;:24;;;;;;-1:-1:-1;;;;;4406:24:10;;4237:200::o;3541:411::-;3604:13;3620:16;3628:7;3620;:16::i;:::-;3604:32;;3660:5;-1:-1:-1;;;;;3654:11:10;:2;-1:-1:-1;;;;;3654:11:10;;;3646:57;;;;-1:-1:-1;;;3646:57:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3722:10;-1:-1:-1;;;;;3722:19:10;;;;:58;;;3745:35;3762:5;3769:10;3745:16;:35::i;:::-;3714:148;;;;-1:-1:-1;;;3714:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3873:24;;;;:15;:24;;;;;;:29;;-1:-1:-1;;;;;;3873:29:10;-1:-1:-1;;;;;3873:29:10;;;;;;;;;3917:28;;3873:24;;3917:28;;;;;;;3541:411;;;:::o;4819:181:2:-;4874:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;:::-;1631:6;1598:18;:40::i;:::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4892:13;;;;:5;:13;;;;;4915:3;4892:20;;;;:26;4898:6;4950:12;:10;:12::i;:::-;-1:-1:-1;;;;;4933:60:2;-1:-1:-1;;;;;;;;;;;4972:20:2;4933:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:181;;:::o;5643:205::-;5720:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5738:25;5751:6;5759:3;;5738:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5738:12:2;;-1:-1:-1;;;5738:25:2:i;:::-;5809:6;5795:12;:10;:12::i;:::-;-1:-1:-1;;;;;5778:63:2;-1:-1:-1;;;;;;;;;;;5817:23:2;5778:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:205;;;;:::o;2130:94:11:-;2200:10;:17;2130:94;:::o;5877:285:10:-;6019:39;6038:10;6050:7;6019:18;:39::i;:::-;6011:101;;;;-1:-1:-1;;;6011:101:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6123:32;6137:4;6143:2;6147:7;6123:13;:32::i;:::-;5877:285;;;:::o;1748:229:11:-;1828:7;1863:16;1873:5;1863:9;:16::i;:::-;1855:5;:24;1847:80;;;;-1:-1:-1;;;1847:80:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1944:19:11;;;;;;:12;:19;;;;;:26;;1964:5;;1944:26;;;;;;;;;;;;;;1937:33;;1748:229;;;;:::o;4678:135:2:-;4753:12;4736:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:13;;;;:5;:13;;;;;;;;;:22;;4777:29;;;;;;-1:-1:-1;;4777:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:22;;4777:29;;4784:22;4777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4678:135;;;;:::o;2101:1794::-;2171:11;2504;2518:23;2525:8;2535:5;;2518:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2518:6:2;;-1:-1:-1;;;2518:23:2:i;:::-;2504:37;;2552:18;2573:42;2592:12;:10;:12::i;:::-;2606:8;2573:18;:42::i;:::-;2552:63;;2625:15;2643;2651:6;2643:7;:15::i;:::-;2625:33;;2673:10;:54;;;;;2687:40;2706:12;:10;:12::i;:::-;2720:6;2687:18;:40::i;:::-;2669:1180;;;2763:13;;;;:5;:13;;;;;:22;2751:34;;2743:72;;;;;-1:-1:-1;;;2743:72:2;;;;;;;;;;;;-1:-1:-1;;;2743:72:2;;;;;;;;;;;;;;;2894:13;;;;:5;:13;;;;;-1:-1:-1;;2894:20:2;;;;:31;2972:8;2900:6;2950:12;:10;:12::i;:::-;-1:-1:-1;;;;;2944:63:2;;2982:5;;2989:17;2944:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;2944:63:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;2944:63:2;;;;-1:-1:-1;2944:63:2;;-1:-1:-1;;;;;2944:63:2;3029:1;3022:8;;;;;;;2669:1180;3052:10;3051:11;:28;;;;;3066:13;3051:28;3047:802;;;3152:27;3158:12;:10;:12::i;:::-;3172:6;3152:5;:27::i;:::-;3193:13;;;;:5;:13;;;;;:33;;;-1:-1:-1;;3240:20:2;;;;:31;3218:8;3199:6;3296:12;:10;:12::i;:::-;-1:-1:-1;;;;;3290:59:2;;3328:5;;3335:13;3290:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3290:59:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3290:59:2;;;;-1:-1:-1;3290:59:2;;-1:-1:-1;;;;;3290:59:2;3371:1;3364:8;;;;;;;3047:802;3393:10;:41;;;;-1:-1:-1;3407:13:2;;;;:5;:13;;;;;:20;;;3431:3;-1:-1:-1;3407:27:2;3393:41;:58;;;;;3438:13;3393:58;3389:460;;;3487:13;;;;:5;:13;;;;;:22;3475:34;;3467:72;;;;;-1:-1:-1;;;3467:72:2;;;;;;;;;;;;-1:-1:-1;;;3467:72:2;;;;;;;;;;;;;;;3635:52;3649:15;3657:6;3649:7;:15::i;:::-;3666:12;:10;:12::i;:::-;3680:6;3635:13;:52::i;:::-;3701:13;;;;:5;:13;;;;;-1:-1:-1;;3701:20:2;;;;:31;3779:8;3707:6;3757:12;:10;:12::i;:::-;-1:-1:-1;;;;;3751:64:2;;3789:5;;3796:18;3751:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3751:64:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3751:64:2;;;;-1:-1:-1;3751:64:2;;-1:-1:-1;;;;;3751:64:2;3837:1;3830:8;;;;;;;3389:460;3887:1;3880:8;;;;;2101:1794;;;;;;:::o;5210:210::-;5283:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5301:13;;;;:5;:13;;;;;:24;;:32;;-1:-1:-1;;;;;;5301:32:2;-1:-1:-1;;;;;5301:32:2;;;;;:13;5365:12;:10;:12::i;:::-;-1:-1:-1;;;;;5348:65:2;-1:-1:-1;;;;;;;;;;;5387:25:2;5348:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;5210:210;;;:::o;6795:132:10:-;6881:39;6898:4;6904:2;6908:7;6881:39;;;;;;;;;;;;:16;:39::i;3901:97:2:-;3953:4;3976:15;3984:6;3976:7;:15::i;:::-;3969:22;3901:97;-1:-1:-1;;3901:97:2:o;2562:196:11:-;2620:7;2655:13;:11;:13::i;:::-;2647:5;:21;2639:78;;;;-1:-1:-1;;;2639:78:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:10;2745:5;2734:17;;;;;;;;;;;;;;;;2727:24;;2562:196;;;:::o;4004:133:2:-;4067:4;4090:40;4109:12;:10;:12::i;:::-;4123:6;4090:18;:40::i;2897:223:10:-;2952:7;2987:20;;;:11;:20;;;;;;-1:-1:-1;;;;;2987:20:10;3025:19;3017:73;;;;-1:-1:-1;;;3017:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:207;2526:7;-1:-1:-1;;;;;2553:19:10;;2545:74;;;;-1:-1:-1;;;2545:74:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2637:24:10;;;;;;:17;:24;;;;;:34;;:32;:34::i;4407:125:2:-;4481:4;4464:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4504:13:2;;;;:5;:13;;;;;:21;;;;4407:125::o;5006:198::-;5073:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5091:13;;;;:5;:13;;;;;:21;;:29;;;5097:6;5152:12;:10;:12::i;:::-;-1:-1:-1;;;;;5135:62:2;-1:-1:-1;;;;;;;;;;;5174:22:2;5135:62;;;;;;;;;;;1304:87:13;1377:7;1370:14;;;;;;;;-1:-1:-1;;1370:14:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:13;;1370:14;;1377:7;;1370:14;;1377:7;1370:14;;;;;;;;;;;;;;;;;;;;;;;;4730:243:10;-1:-1:-1;;;;;4809:16:10;;4815:10;4809:16;;4801:54;;;;;-1:-1:-1;;;4801:54:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4885:10;4866:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;4866:34:10;;;;;;;;;;;;:45;;-1:-1:-1;;4866:45:10;;;;;;;;;;4926:40;;;;;;;4866:34;;4885:10;4926:40;;;;;;;;;;;4730:243;;:::o;5426:211:2:-;5504:6;1579:15;1587:6;1579:7;:15::i;:::-;:59;;;;;1598:40;1617:12;:10;:12::i;1598:40::-;1571:120;;;;-1:-1:-1;;;1571:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:13;;;;:5;:13;;;;;:30;;:22;;5547:5;;5522:30;:::i;:::-;;5598:6;5584:12;:10;:12::i;:::-;-1:-1:-1;;;;;5567:63:2;-1:-1:-1;;;;;;;;;;;5606:23:2;5567:63;;;;;;;;;;;7632:265:10;7738:31;7751:4;7757:2;7761:7;7738:12;:31::i;:::-;7787:48;7810:4;7816:2;7820:7;7829:5;7787:22;:48::i;:::-;7779:111;;;;-1:-1:-1;;;7779:111:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:265;;;;:::o;4538:134:2:-;4615:7;4598:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4641:13:2;;;;:5;:13;;;;;:24;;;-1:-1:-1;;;;;4641:24:2;;4538:134::o;4276:125::-;4351:4;4334:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4374:13:2;;;;:5;:13;;;;;:20;;;;4276:125::o;1591:202:13:-;1649:13;1682:16;1690:7;1682;:16::i;:::-;1674:76;;;;-1:-1:-1;;;1674:76:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;;;:10;:19;;;;;;;;;1760:26;;;;;;-1:-1:-1;;1760:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;1760:26;;1767:19;1760:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:202;;;:::o;4143:127:2:-;4218:4;4201:6;1440:15;1448:6;1440:7;:15::i;:::-;1432:69;;;;-1:-1:-1;;;1432:69:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4241:13:2;;;;:5;:13;;;;;:22;;4143:127::o;1716:379::-;1788:7;1831:1;1815:5;:12;:17;;:39;;;;;1852:2;1836:5;:12;:18;;1815:39;1807:78;;;;;-1:-1:-1;;;1807:78:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1916:16;;;;;;;;;;1969:31;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1969:31:2;;;;;;;1959:42;;;;;;;;2020:10;2012:46;;;;;-1:-1:-1;;;2012:46:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:6;1716:379;-1:-1:-1;;;;1716:379:2:o;5295:145:10:-;-1:-1:-1;;;;;5398:25:10;;;5375:4;5398:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;5295:145::o;8092:152::-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:10;8218:19;;;8092:152::o;1285:96:2:-;1364:10;1285:96;:::o;8605:329:10:-;8690:4;8714:16;8722:7;8714;:16::i;:::-;8706:73;;;;-1:-1:-1;;;8706:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8789:13;8805:16;8813:7;8805;:16::i;:::-;8789:32;;8850:5;-1:-1:-1;;;;;8839:16:10;:7;-1:-1:-1;;;;;8839:16:10;;:51;;;;8883:7;-1:-1:-1;;;;;8859:31:10;:20;8871:7;8859:11;:20::i;:::-;-1:-1:-1;;;;;8859:31:10;;8839:51;:87;;;;8894:32;8911:5;8918:7;8894:16;:32::i;2032:192:13:-;2117:16;2125:7;2117;:16::i;:::-;2109:73;;;;-1:-1:-1;;;2109:73:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:19;;;;:10;:19;;;;;;;;:25;;;;;;;;:::i;3133:239:11:-;3218:38;3238:4;3244:2;3248:7;3218:19;:38::i;:::-;3267:47;3300:4;3306:7;3267:32;:47::i;:::-;3325:40;3353:2;3357:7;3325:27;:40::i;3629:196::-;3692:24;3704:2;3708:7;3692:11;:24::i;:::-;3727:40;3755:2;3759:7;3727:27;:40::i;:::-;3778;3810:7;3778:31;:40::i;:::-;3629:196;;:::o;1063:112:6:-;1154:14;;1063:112::o;11771:347:10:-;11892:4;11917:15;:2;-1:-1:-1;;;;;11917:13:10;;:15::i;:::-;11912:58;;-1:-1:-1;11955:4:10;11948:11;;11912:58;11996:70;;-1:-1:-1;;;11996:70:10;;12033:10;11996:70;;;;;;-1:-1:-1;;;;;11996:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:13;;11996:36;;;;;;12033:10;;12045:4;;12051:7;;12060:5;;11996:70;;;;;;;;;;;11980:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11996:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11996:70:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11996:70:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11996:70:10;-1:-1:-1;;;;;;12084:26:10;-1:-1:-1;;;12084:26:10;;-1:-1:-1;;11771:347:10;;;;;;:::o;10751:447::-;10864:4;-1:-1:-1;;;;;10844:24:10;:16;10852:7;10844;:16::i;:::-;-1:-1:-1;;;;;10844:24:10;;10836:78;;;;-1:-1:-1;;;10836:78:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10932:16:10;;10924:65;;;;-1:-1:-1;;;10924:65:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11000:23;11015:7;11000:14;:23::i;:::-;-1:-1:-1;;;;;11034:23:10;;;;;;:17;:23;;;;;:35;;:33;:35::i;:::-;-1:-1:-1;;;;;11079:21:10;;;;;;:17;:21;;;;;:33;;:31;:33::i;:::-;11123:20;;;;:11;:20;;;;;;:25;;-1:-1:-1;;;;;;11123:25:10;-1:-1:-1;;;;;11123:25:10;;;;;;;;;11164:27;;11123:20;;11164:27;;;;;;;10751:447;;;:::o;6241:1128:11:-;-1:-1:-1;;;;;6528:18:11;;6503:22;6528:18;;;:12;:18;;;;;:25;:32;;6558:1;6528:32;:29;:32;:::i;:::-;6570:18;6591:26;;;:17;:26;;;;;;6503:57;;-1:-1:-1;6721:28:11;;;6717:323;;-1:-1:-1;;;;;6787:18:11;;6765:19;6787:18;;;:12;:18;;;;;:34;;6806:14;;6787:34;;;;;;;;;;;;;;6765:56;;6869:11;6836:12;:18;6849:4;-1:-1:-1;;;;;6836:18:11;-1:-1:-1;;;;;6836:18:11;;;;;;;;;;;;6855:10;6836:30;;;;;;;;;;;;;;;;;;;:44;;;;6952:30;;;:17;:30;;;;;:43;;;6717:323;-1:-1:-1;;;;;7126:18:11;;;;;;:12;:18;;;;;:27;;;;;-1:-1:-1;;7126:27:11;;;:::i;:::-;;6241:1128;;;;:::o;5087:183::-;-1:-1:-1;;;;;5200:16:11;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:11;;;;;;;;5087:183::o;9179:327:10:-;-1:-1:-1;;;;;9250:16:10;;9242:61;;;;;-1:-1:-1;;;9242:61:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;9322;:16::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:10;-1:-1:-1;;;;;9382:25:10;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;:33::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:10;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5465:161:11:-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:11;;;;;;;5465:161::o;542:413:18:-;902:20;940:8;;;542:413::o;12280:171:10:-;12379:1;12343:24;;;:15;:24;;;;;;-1:-1:-1;;;;;12343:24:10;:38;12339:106;;12432:1;12397:24;;;:15;:24;;;;;:37;;-1:-1:-1;;;;;;12397:37:10;;;12339:106;12280:171;:::o;1276:108:6:-;1356:14;;:21;;1375:1;1356:21;:18;:21;:::i;:::-;1339:38;;1276:108::o;1181:89::-;1244:19;;1262:1;1244:19;;;1181:89::o;1274:179:9:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:9;;;1274:179::o;737:5113:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;737:5113:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5113:2;;;-1:-1:-1;737:5113:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "source": "// Copyright (C) 2019 Christian Felde\n// Copyright (C) 2019 Mohamed Elshami\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npragma solidity ^0.5.0;\n\nimport \"./IAKAP.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\";\n\ncontract AKAF is IAKAP, ERC721Full {\n struct Node {\n uint parentId;\n uint expiry;\n uint seeAlso;\n address seeAddress;\n bytes nodeBody;\n }\n\n mapping(uint => Node) private nodes;\n\n constructor() ERC721Full(\"AKA Forever Registry\", \"AKAF\") public {\n // Create the special root node and assigned msg.sender as owner\n uint nodeId = 0;\n _mint(_msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, nodeId, \"\", ClaimCase.NEW);\n }\n\n function _msgSender() internal view returns (address payable) {\n return msg.sender;\n }\n\n modifier onlyExisting(uint nodeId) {\n require(_exists(nodeId), \"AKAP: operator query for nonexistent node\");\n\n _;\n }\n\n modifier onlyApproved(uint nodeId) {\n require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId), \"AKAP: set value caller is not owner nor approved\");\n\n _;\n }\n\n function hashOf(uint parentId, bytes memory label) public pure returns (uint id) {\n require(label.length >= 1 && label.length <= 32, \"AKAP: Invalid label length\");\n\n bytes32 labelHash = keccak256(label);\n bytes32 nodeId = keccak256(abi.encode(parentId, labelHash));\n\n require(nodeId > 0, \"AKAP: Invalid node hash\");\n\n return uint(nodeId);\n }\n\n function claim(uint parentId, bytes calldata label) external returns (uint status) {\n // Claim logic is as found in AKAP, but with an expiry timestamp set to \"forever\".\n // Owners of a node on an AKAF contract does hence not need to reclaim their nodes.\n // Node owners may still explicitly expire a node if they wish.\n\n // Get hash/id of the node caller is claiming\n uint nodeId = hashOf(parentId, label);\n\n bool isParentOwner = _isApprovedOrOwner(_msgSender(), parentId);\n bool nodeExists = _exists(nodeId);\n\n if (nodeExists && _isApprovedOrOwner(_msgSender(), nodeId)) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Caller is current owner/approved, extend lease..\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.RECLAIM);\n\n return 1;\n } else if (!nodeExists && isParentOwner) {\n // Node does not exist, allocate to caller..\n _mint(_msgSender(), nodeId);\n nodes[nodeId].parentId = parentId;\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.NEW);\n\n return 2;\n } else if (nodeExists && nodes[nodeId].expiry <= now && isParentOwner) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Node exists and is expired, allocate to caller and extend lease..\n _transferFrom(ownerOf(nodeId), _msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.TRANSFER);\n\n return 3;\n }\n\n // No action\n return 0;\n }\n\n function exists(uint nodeId) external view returns (bool) {\n return _exists(nodeId);\n }\n\n function isApprovedOrOwner(uint nodeId) external view returns (bool) {\n return _isApprovedOrOwner(_msgSender(), nodeId);\n }\n\n function parentOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].parentId;\n }\n\n function expiryOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].expiry;\n }\n\n function seeAlso(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].seeAlso;\n }\n\n function seeAddress(uint nodeId) external view onlyExisting(nodeId) returns (address) {\n return nodes[nodeId].seeAddress;\n }\n\n function nodeBody(uint nodeId) external view onlyExisting(nodeId) returns (bytes memory) {\n return nodes[nodeId].nodeBody;\n }\n\n function expireNode(uint nodeId) external onlyApproved(nodeId) {\n nodes[nodeId].expiry = now;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.EXPIRY);\n }\n\n function setSeeAlso(uint nodeId, uint value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAlso = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ALSO);\n }\n\n function setSeeAddress(uint nodeId, address value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAddress = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ADDRESS);\n }\n\n function setNodeBody(uint nodeId, bytes calldata value) external onlyApproved(nodeId) {\n nodes[nodeId].nodeBody = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.NODE_BODY);\n }\n\n function setTokenURI(uint nodeId, string calldata uri) external onlyApproved(nodeId) {\n _setTokenURI(nodeId, uri);\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.TOKEN_URI);\n }\n}", + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.NodeAttribute\",\"name\":\"attribute\",\"type\":\"uint8\"}],\"name\":\"AttributeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"enum IAKAP.ClaimCase\",\"name\":\"claimCase\",\"type\":\"uint8\"}],\"name\":\"Claim\",\"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\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expireNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"expiryOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"parentId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"label\",\"type\":\"bytes\"}],\"name\":\"hashOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"isApprovedOrOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"nodeBody\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"parentOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"}],\"name\":\"seeAlso\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setNodeBody\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setSeeAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setSeeAlso\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.\",\"params\":{\"to\":\"address to be approved for the given token ID\",\"tokenId\":\"uint256 ID of the token to be approved\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"address to query the balance of\"},\"return\":\"uint256 representing the amount owned by the passed address\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the approval of\"},\"return\":\"address currently approved for the given token ID\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner.\",\"params\":{\"operator\":\"operator address which you want to query the approval of\",\"owner\":\"owner address which you want to query the approval of\"},\"return\":\"bool whether the given operator is approved by the given owner\"},\"name()\":{\"details\":\"Gets the token name.\",\"return\":\"string representing the token name\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the owner of\"},\"return\":\"address currently marked as the owner of the given token ID\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\",\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.\",\"params\":{\"approved\":\"representing the status of the approval to be set\",\"to\":\"operator address to set the approval\"}},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Gets the token symbol.\",\"return\":\"string representing the token symbol\"},\"tokenByIndex(uint256)\":{\"details\":\"Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the tokens list\"},\"return\":\"uint256 token ID at the given index of the tokens list\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Gets the token ID at a given index of the tokens list of the requested owner.\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the requested tokens list\",\"owner\":\"address owning the tokens list to be accessed\"},\"return\":\"uint256 token ID at the given index of the tokens list owned by the requested address\"},\"tokenURI(uint256)\":{\"details\":\"Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query\"}},\"totalSupply()\":{\"details\":\"Gets the total amount of tokens stored by the contract.\",\"return\":\"uint256 representing the total amount of tokens\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.\",\"params\":{\"from\":\"current owner of the token\",\"to\":\"address to receive the ownership of the given token ID\",\"tokenId\":\"uint256 ID of the token to be transferred\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":\"AKAF\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/private/tmp/eth/akap/contracts/AKAF.sol\":{\"keccak256\":\"0xf2978e2729083e110ff4c9ec5bb29d7f0c45b1ce55976b85f313fbf8a50b1109\",\"urls\":[\"bzz-raw://846fe8dcf2e6507135b593c2bebd704e94fe1c111365f870e63475d7ac85952e\",\"dweb:/ipfs/QmXMLimLgj7ou43rsQAYEzw69KZkE2gHRLybfhk5qX3Kc6\"]},\"/private/tmp/eth/akap/contracts/IAKAP.sol\":{\"keccak256\":\"0x2163f1519406e467ca39601ce7dfed73d104b3da8bdd0146bd6ca2d14388276a\",\"urls\":[\"bzz-raw://2e4395653541d8e0a6a5bad617a3b7af3efcd8fdea988edf4c7644aabbb8e6b0\",\"dweb:/ipfs/QmPDi6uqVTLCp1v725r2qfC5GNsiGCwbMCpZWSjc34u1Ek\"]},\"@openzeppelin/contracts/drafts/Counters.sol\":{\"keccak256\":\"0x5eb69360d3441ab2ee799bd7c007cccbffb0896f12b2dfe1456193e2aa180a11\",\"urls\":[\"bzz-raw://072e8b5a1b5acfc2acba9b6fb87d1dc57065aad44572617ad46b014074969eb3\",\"dweb:/ipfs/QmVTDHUriaxBJqiWCWgWC8vYaYYfXSz883LsowzTx1DcpK\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xac2eacd7e7762e275442f28f21d821544df5aae2ed7698af13be8c41b7005e2e\",\"urls\":[\"bzz-raw://8bdbefb642e7b08535c66bbf074e576cfef2300cdf910c1e0b211f6393833a28\",\"dweb:/ipfs/QmQhfx2Ufr8a2gFXm3KogL66xGgAuAWMwcamkWFKGG6Vya\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzz-raw://b40442c5b350b57b88a081a1eacd2bac962d4ecc1f029f5447a18986f08f6f14\",\"dweb:/ipfs/QmV7wjtRf11ibUHh4g8JjuhMpy68pPhV95L2y46UBoRfsZ\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xd1804d04fb39689453f673601429a99a0c68c422a981fc338773df9a59180fe9\",\"urls\":[\"bzz-raw://1b9307920e0378d58c6677f8952ad090a9ecb30e878835e301a0d18386a870c1\",\"dweb:/ipfs/QmYYixTDVF4FXqFpYzEcufAwEY9BFBJ33Ew9ncsGvD7btC\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf151df411bbf4eaef1fc8e8480cd10c2cd985f1a36517e63981517610213efc1\",\"urls\":[\"bzz-raw://2a277b3cc3a1a03af5c039bc75cd16bb2d23b529cb2564cc0bea1b1e0eb4dd68\",\"dweb:/ipfs/QmNRxggY8qmjjuLnxggRqE8uBueuCktLwi9YYHagWoaEJ8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\":{\"keccak256\":\"0xb42cb5a7471d98114af8f7050e7d08dfd543f432713a8aee72a45ce9485f5bed\",\"urls\":[\"bzz-raw://324b8d35f37d91fd863130a6e4b83d55b8b95264af011a008ec03e084ac91b75\",\"dweb:/ipfs/QmWY61QSSJPkgDb2WZR1unTfuSrd5jBp2tC7RrCrQxC9CL\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\":{\"keccak256\":\"0x908d0d6fd8d30cffb1fe9fce1f7db6802cb885fbe88d2f170539e8dcc6afa946\",\"urls\":[\"bzz-raw://ed5f7883e2a50b3efeaae764c77152bef9d3d9965832ef095c94e79c2e887257\",\"dweb:/ipfs/QmaLRQ1ziLAo18gvM2EbKhvHC3ys4333mTxCFfoEJ8AodY\"]},\"@openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\":{\"keccak256\":\"0xe5e28b1a405164faa98f8ecd8ed2b00907b89e3d58b2b2bb8ac8b12bc5714489\",\"urls\":[\"bzz-raw://0d5d3f0caa7e7ec91f8a2894e1a6a3513a0c79aa91a498ebf8fdbdd07c12286f\",\"dweb:/ipfs/QmP7r4jQMRxXb5JHy5V9bgMz5FmTezcSDd7ivyzJN88pTR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xce48937a8007c580b8e2e35705738c922dd17540de89ebee6df06d2917a3f9fc\",\"urls\":[\"bzz-raw://1d117265103ee3efcd454d3aafb3e79a115f9bca6dec78a1229558eb30d14d05\",\"dweb:/ipfs/QmTm5Z1c7zzPiG3Cfj1eBMB23AeiEFGgvmTFQVaeEWXVCw\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0x5c573acd6c7b98d71f3c1c44d63dc17400b0fd7b26a52c9fded43b8b533dc4ec\",\"urls\":[\"bzz-raw://e23af54444d2dbfae58895339eb7b189e1ba5d0b7abde63716e7ef7da23b2fde\",\"dweb:/ipfs/QmZva7dE1SMd1yyizzc6ivSoBXXwpNveLV7iFNATNpq68Y\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x2b2b99dc7fe8fcd1f9427d00822b99cbc683dc21f5dd7532bd7e2281fd2c2ca2\",\"urls\":[\"bzz-raw://a8024c00e34efaf328f9592e76823c79f25fa0f6006bdf4a1e7fea204afd4773\",\"dweb:/ipfs/QmZns9jTr7843njq3J2iL2LLoWXK5mdzN1bDGd9GL3ahhD\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xadbfb7028fb0f851dc848a48b9e54e7c89ffd2c2edc12fa4ba9bb383dfaa83d9\",\"urls\":[\"bzz-raw://90dceab42713246639100b87d6650037d68e4a2ab2dd4b5768c3ed35d6b3a4a0\",\"dweb:/ipfs/QmQ42UW5nchMoYP9bU9F1AJga5chG8j92fCPkURpiDKsCu\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzz-raw://75ae8d04454d1511a2ed986cc8585736f05c5c25280683b3d24712a9f414a4bf\",\"dweb:/ipfs/Qmb3kNCoBUZdah1AgBBD4zMk898j5Qw8ahT1w5cCMYp5Y3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252601481527f414b4120466f72657665722052656769737472790000000000000000000000006020808301919091528251808401909352600483526320a5a0a360e11b908301529081816200007f6301ffc9a760e01b6001600160e01b03620001c316565b6200009a6380ac58cd60e01b6001600160e01b03620001c316565b620000b563780e9d6360e01b6001600160e01b03620001c316565b8151620000ca90600990602085019062000482565b508051620000e090600a90602084019062000482565b50620000fc635b5e139f60e01b6001600160e01b03620001c316565b50600092506200012c91506200011c90506001600160e01b036200024816565b826001600160e01b036200024d16565b6000818152600c602052604090206000196001909101558080620001586001600160e01b036200024816565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e600160405180806020018360028111156200019957fe5b60ff1681526020018281038252600081526020016020019250505060405180910390a45062000524565b6001600160e01b0319808216141562000223576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b335b90565b6200026482826200029160201b62001ff21760201c565b6200027982826001600160e01b03620003da16565b6200028d816001600160e01b036200041816565b5050565b6001600160a01b038216620002ed576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b62000301816001600160e01b036200045c16565b1562000354576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600382529091206200039e9162000479811b620021c117901c565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b6000908152600160205260409020546001600160a01b0316151590565b80546001019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c557805160ff1916838001178555620004f5565b82800160010185558215620004f5579182015b82811115620004f5578251825591602001919060010190620004d8565b506200050392915062000507565b5090565b6200024a91905b808211156200050357600081556001016200050e565b61266180620005346000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b87565b610398610c76565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c7c565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cd1565b6102226004803603602081101561042257600080fd5b5035610d50565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e46565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b0316611207565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112df565b6102066004803603602081101561051657600080fd5b50356112fa565b6103986004803603602081101561053357600080fd5b5035611317565b6102066004803603602081101561055057600080fd5b503561137d565b6102b46004803603602081101561056d57600080fd5b5035611390565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113e4565b610398600480360360208110156105b057600080fd5b503561144c565b6102fc600480360360408110156105cd57600080fd5b50803590602001356114b6565b610222611560565b6102fc600480360360408110156105f857600080fd5b506001600160a01b03813516906020013515156115c1565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b50909250905061168d565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611740945050505050565b6102b46004803603602081101561075f57600080fd5b5035611798565b6103986004803603602081101561077c57600080fd5b503561180b565b6102226004803603602081101561079957600080fd5b5035611875565b610398600480360360208110156107b657600080fd5b503561195a565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119c1945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611ab6565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611ae4565b6109925760405162461bcd60e51b815260040180806020018281038252602c8152602001806124b6602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611390565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b81526004018080602001828103825260218152602001806125af6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611ab6565b610a635760405162461bcd60e51b815260040180806020018281038252603881526020018061242b6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611ae4565b8015610ae15750610ae1610adb611b01565b82611b05565b8015610aed5750600081115b610b285760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b46611b01565b6001600160a01b0316600080516020612537833981519152600060405180826004811115610b7057fe5b60ff16815260200191505060405180910390a35050565b82610b9181611ae4565b8015610ba35750610ba3610adb611b01565b8015610baf5750600081115b610bea5760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b610c2a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ba192505050565b83610c33611b01565b6001600160a01b0316600080516020612537833981519152600460405180826004811115610c5d57fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c863382611b05565b610cc15760405162461bcd60e51b81526004018080602001828103825260318152602001806125d06031913960400191505060405180910390fd5b610ccc838383611c04565b505050565b6000610cdc836113e4565b8210610d195760405162461bcd60e51b815260040180806020018281038252602b81526020018061234e602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d3d57fe5b9060005260206000200154905092915050565b606081610d5c81611ae4565b8015610d685750600081115b610da35760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e395780601f10610e0e57610100808354040283529160200191610e39565b820191906000526020600020905b815481529060010190602001808311610e1c57829003601f168201915b5050505050915050919050565b600080610e898585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119c192505050565b90506000610e9e610e98611b01565b87611b05565b90506000610eab83611ae4565b9050808015610ec65750610ec6610ec0611b01565b84611b05565b15610fd6576000838152600c60205260409020548714610f29576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f4a611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f8c57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460019350505050611200565b80158015610fe15750815b156110a757610ff7610ff1611b01565b84611c23565b6000838152600c60205260409020878155600019600190910155868361101b611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561105d57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460029350505050611200565b8080156110c557506000838152600c60205260409020600101544210155b80156110ce5750815b156111f8576000838152600c60205260409020548714611131576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61114b61113d84611390565b611145611b01565b85611c04565b6000838152600c60205260409020600019600190910155868361116c611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e8989600260405180806020018360028111156111ae57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460039350505050611200565b600093505050505b9392505050565b8161121181611ae4565b80156112235750611223610adb611b01565b801561122f5750600081115b61126a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261129d611b01565b6001600160a01b03166000805160206125378339815191526002604051808260048111156112c757fe5b60ff16815260200191505060405180910390a3505050565b610ccc83838360405180602001604052806000815250611740565b600061130582611ae4565b80156113115750600082115b92915050565b6000611321610c76565b821061135e5760405162461bcd60e51b815260040180806020018281038252602c815260200180612601602c913960400191505060405180910390fd5b6007828154811061136b57fe5b90600052602060002001549050919050565b600061131161138a611b01565b83611b05565b6000818152600160205260408120546001600160a01b0316806113115760405162461bcd60e51b815260040180806020018281038252602981526020018061248d6029913960400191505060405180910390fd5b60006001600160a01b03821661142b5760405162461bcd60e51b815260040180806020018281038252602a815260200180612463602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061131190611c44565b60008161145881611ae4565b80156114645750600081115b61149f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b816114c081611ae4565b80156114d257506114d2610adb611b01565b80156114de5750600081115b6115195760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000838152600c6020526040902060020182905582611536611b01565b6001600160a01b03166000805160206125378339815191526001604051808260048111156112c757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b03821633141561161f576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261169781611ae4565b80156116a957506116a9610adb611b01565b80156116b55750600081115b6116f05760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000848152600c6020526040902061170c906004018484612227565b5083611716611b01565b6001600160a01b0316600080516020612537833981519152600360405180826004811115610c5d57fe5b61174b848484610c7c565b61175784848484611c48565b6117925760405162461bcd60e51b81526004018080602001828103825260328152602001806123796032913960400191505060405180910390fd5b50505050565b6000816117a481611ae4565b80156117b05750600081115b6117eb5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b60008161181781611ae4565b80156118235750600081115b61185e5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061188082611ae4565b6118bb5760405162461bcd60e51b815260040180806020018281038252602f815260200180612557602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561194e5780601f106119235761010080835404028352916020019161194e565b820191906000526020600020905b81548152906001019060200180831161193157829003601f168201915b50505050509050919050565b60008161196681611ae4565b80156119725750600081115b6119ad5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b600060018251101580156119d757506020825111155b611a28576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611aae576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611b1082611ae4565b611b4b5760405162461bcd60e51b815260040180806020018281038252602c8152602001806123ff602c913960400191505060405180910390fd5b6000611b5683611390565b9050806001600160a01b0316846001600160a01b03161480611b915750836001600160a01b0316611b868461094c565b6001600160a01b0316145b80611aae5750611aae8185611ab6565b611baa82611ae4565b611be55760405162461bcd60e51b815260040180806020018281038252602c8152602001806124e2602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610ccc928401906122a5565b611c0f838383611d7b565b611c198382611ebf565b610ccc8282611fb4565b611c2d8282611ff2565b611c378282611fb4565b611c4081612123565b5050565b5490565b6000611c5c846001600160a01b0316612167565b611c6857506001611aae565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611ce2578181015183820152602001611cca565b50505050905090810190601f168015611d0f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611d3157600080fd5b505af1158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d8e82611390565b6001600160a01b031614611dd35760405162461bcd60e51b815260040180806020018281038252602981526020018061250e6029913960400191505060405180910390fd5b6001600160a01b038216611e185760405162461bcd60e51b81526004018080602001828103825260248152602001806123db6024913960400191505060405180910390fd5b611e218161216d565b6001600160a01b0383166000908152600360205260409020611e42906121aa565b6001600160a01b0382166000908152600360205260409020611e63906121c1565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611ee990600163ffffffff6121ca16565b600083815260066020526040902054909150808214611f84576001600160a01b0384166000908152600560205260408120805484908110611f2657fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611f6457fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611fad906000198301612313565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b03821661204d576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61205681611ae4565b156120a8576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120e7906121c1565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b0316156121a757600081815260026020526040902080546001600160a01b03191690555b50565b80546121bd90600163ffffffff6121ca16565b9055565b80546001019055565b600082821115612221576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122685782800160ff19823516178555612295565b82800160010185558215612295579182015b8281111561229557823582559160200191906001019061227a565b506122a1929150612333565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122e657805160ff1916838001178555612295565b82800160010185558215612295579182015b828111156122955782518255916020019190600101906122f8565b815481835581811115610ccc57600083815260209020610ccc9181019083015b61094991905b808211156122a1576000815560010161233956fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a72315820fad6b581bcdb67eb97ac3e02062c4c98693ea66a316c8b2acf1207be83e0b82064736f6c63430005100032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c8063631fb72611610104578063b0690124116100a2578063c87b56dd11610071578063c87b56dd14610783578063cfa3c132146107a0578063e741cc4e146107bd578063e985e9c514610868576101da565b8063b069012414610610578063b88d4fde14610685578063b8af764214610749578063baef73e914610766576101da565b80637352f2b4116100de5780637352f2b41461059a5780638b73061f146105b757806395d89b41146105da578063a22cb465146105e2576101da565b8063631fb7261461053a5780636352211e1461055757806370a0823114610574576101da565b806323b872dd1161017c5780633a76c3021161014b5780633a76c3021461049e57806342842e0e146104ca5780634f558e79146105005780634f6ccce71461051d576101da565b806323b872dd146103aa5780632f745c59146103e0578063380a284c1461040c57806338926b6d14610429576101da565b8063095ea7b3116101b8578063095ea7b3146102d05780630d340c4a146102fe578063162094c41461031b57806318160ddd14610390576101da565b806301ffc9a7146101df57806306fdde031461021a578063081812fc14610297575b600080fd5b610206600480360360208110156101f557600080fd5b50356001600160e01b031916610896565b604080519115158252519081900360200190f35b6102226108b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025c578181015183820152602001610244565b50505050905090810190601f1680156102895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b4600480360360208110156102ad57600080fd5b503561094c565b604080516001600160a01b039092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b0381351690602001356109ae565b005b6102fc6004803603602081101561031457600080fd5b5035610abf565b6102fc6004803603604081101561033157600080fd5b81359190810190604081016020820135600160201b81111561035257600080fd5b82018360208201111561036457600080fd5b803590602001918460018302840111600160201b8311171561038557600080fd5b509092509050610b87565b610398610c76565b60408051918252519081900360200190f35b6102fc600480360360608110156103c057600080fd5b506001600160a01b03813581169160208101359091169060400135610c7c565b610398600480360360408110156103f657600080fd5b506001600160a01b038135169060200135610cd1565b6102226004803603602081101561042257600080fd5b5035610d50565b6103986004803603604081101561043f57600080fd5b81359190810190604081016020820135600160201b81111561046057600080fd5b82018360208201111561047257600080fd5b803590602001918460018302840111600160201b8311171561049357600080fd5b509092509050610e46565b6102fc600480360360408110156104b457600080fd5b50803590602001356001600160a01b0316611207565b6102fc600480360360608110156104e057600080fd5b506001600160a01b038135811691602081013590911690604001356112df565b6102066004803603602081101561051657600080fd5b50356112fa565b6103986004803603602081101561053357600080fd5b5035611317565b6102066004803603602081101561055057600080fd5b503561137d565b6102b46004803603602081101561056d57600080fd5b5035611390565b6103986004803603602081101561058a57600080fd5b50356001600160a01b03166113e4565b610398600480360360208110156105b057600080fd5b503561144c565b6102fc600480360360408110156105cd57600080fd5b50803590602001356114b6565b610222611560565b6102fc600480360360408110156105f857600080fd5b506001600160a01b03813516906020013515156115c1565b6102fc6004803603604081101561062657600080fd5b81359190810190604081016020820135600160201b81111561064757600080fd5b82018360208201111561065957600080fd5b803590602001918460018302840111600160201b8311171561067a57600080fd5b50909250905061168d565b6102fc6004803603608081101561069b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460018302840111600160201b8311171561070857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611740945050505050565b6102b46004803603602081101561075f57600080fd5b5035611798565b6103986004803603602081101561077c57600080fd5b503561180b565b6102226004803603602081101561079957600080fd5b5035611875565b610398600480360360208110156107b657600080fd5b503561195a565b610398600480360360408110156107d357600080fd5b81359190810190604081016020820135600160201b8111156107f457600080fd5b82018360208201111561080657600080fd5b803590602001918460018302840111600160201b8311171561082757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119c1945050505050565b6102066004803603604081101561087e57600080fd5b506001600160a01b0381358116916020013516611ab6565b6001600160e01b03191660009081526020819052604090205460ff1690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b505050505090505b90565b600061095782611ae4565b6109925760405162461bcd60e51b815260040180806020018281038252602c8152602001806124b6602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006109b982611390565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b81526004018080602001828103825260218152602001806125af6021913960400191505060405180910390fd5b336001600160a01b0382161480610a285750610a288133611ab6565b610a635760405162461bcd60e51b815260040180806020018281038252603881526020018061242b6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b80610ac981611ae4565b8015610ae15750610ae1610adb611b01565b82611b05565b8015610aed5750600081115b610b285760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000828152600c602052604090204260019091015581610b46611b01565b6001600160a01b0316600080516020612537833981519152600060405180826004811115610b7057fe5b60ff16815260200191505060405180910390a35050565b82610b9181611ae4565b8015610ba35750610ba3610adb611b01565b8015610baf5750600081115b610bea5760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b610c2a8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ba192505050565b83610c33611b01565b6001600160a01b0316600080516020612537833981519152600460405180826004811115610c5d57fe5b60ff16815260200191505060405180910390a350505050565b60075490565b610c863382611b05565b610cc15760405162461bcd60e51b81526004018080602001828103825260318152602001806125d06031913960400191505060405180910390fd5b610ccc838383611c04565b505050565b6000610cdc836113e4565b8210610d195760405162461bcd60e51b815260040180806020018281038252602b81526020018061234e602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600560205260409020805483908110610d3d57fe5b9060005260206000200154905092915050565b606081610d5c81611ae4565b8015610d685750600081115b610da35760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b6000838152600c602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610e395780601f10610e0e57610100808354040283529160200191610e39565b820191906000526020600020905b815481529060010190602001808311610e1c57829003601f168201915b5050505050915050919050565b600080610e898585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119c192505050565b90506000610e9e610e98611b01565b87611b05565b90506000610eab83611ae4565b9050808015610ec65750610ec6610ec0611b01565b84611b05565b15610fd6576000838152600c60205260409020548714610f29576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b6000838152600c602052604090206000196001909101558683610f4a611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e898960006040518080602001836002811115610f8c57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460019350505050611200565b80158015610fe15750815b156110a757610ff7610ff1611b01565b84611c23565b6000838152600c60205260409020878155600019600190910155868361101b611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e89896001604051808060200183600281111561105d57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460029350505050611200565b8080156110c557506000838152600c60205260409020600101544210155b80156110ce5750815b156111f8576000838152600c60205260409020548714611131576040805162461bcd60e51b81526020600482015260196024820152780829682a0744092dcecc2d8d2c840e0c2e4cadce840d0c2e6d603b1b604482015290519081900360640190fd5b61114b61113d84611390565b611145611b01565b85611c04565b6000838152600c60205260409020600019600190910155868361116c611b01565b6001600160a01b03167f2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e8989600260405180806020018360028111156111ae57fe5b60ff1681526020018281038252858582818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a460039350505050611200565b600093505050505b9392505050565b8161121181611ae4565b80156112235750611223610adb611b01565b801561122f5750600081115b61126a5760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000838152600c6020526040902060030180546001600160a01b0319166001600160a01b0384161790558261129d611b01565b6001600160a01b03166000805160206125378339815191526002604051808260048111156112c757fe5b60ff16815260200191505060405180910390a3505050565b610ccc83838360405180602001604052806000815250611740565b600061130582611ae4565b80156113115750600082115b92915050565b6000611321610c76565b821061135e5760405162461bcd60e51b815260040180806020018281038252602c815260200180612601602c913960400191505060405180910390fd5b6007828154811061136b57fe5b90600052602060002001549050919050565b600061131161138a611b01565b83611b05565b6000818152600160205260408120546001600160a01b0316806113115760405162461bcd60e51b815260040180806020018281038252602981526020018061248d6029913960400191505060405180910390fd5b60006001600160a01b03821661142b5760405162461bcd60e51b815260040180806020018281038252602a815260200180612463602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061131190611c44565b60008161145881611ae4565b80156114645750600081115b61149f5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090206002015490565b816114c081611ae4565b80156114d257506114d2610adb611b01565b80156114de5750600081115b6115195760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000838152600c6020526040902060020182905582611536611b01565b6001600160a01b03166000805160206125378339815191526001604051808260048111156112c757fe5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109415780601f1061091657610100808354040283529160200191610941565b6001600160a01b03821633141561161f576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b8261169781611ae4565b80156116a957506116a9610adb611b01565b80156116b55750600081115b6116f05760405162461bcd60e51b81526004018080602001828103825260308152602001806123ab6030913960400191505060405180910390fd5b6000848152600c6020526040902061170c906004018484612227565b5083611716611b01565b6001600160a01b0316600080516020612537833981519152600360405180826004811115610c5d57fe5b61174b848484610c7c565b61175784848484611c48565b6117925760405162461bcd60e51b81526004018080602001828103825260328152602001806123796032913960400191505060405180910390fd5b50505050565b6000816117a481611ae4565b80156117b05750600081115b6117eb5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c60205260409020600301546001600160a01b031690565b60008161181781611ae4565b80156118235750600081115b61185e5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090206001015490565b606061188082611ae4565b6118bb5760405162461bcd60e51b815260040180806020018281038252602f815260200180612557602f913960400191505060405180910390fd5b6000828152600b602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561194e5780601f106119235761010080835404028352916020019161194e565b820191906000526020600020905b81548152906001019060200180831161193157829003601f168201915b50505050509050919050565b60008161196681611ae4565b80156119725750600081115b6119ad5760405162461bcd60e51b81526004018080602001828103825260298152602001806125866029913960400191505060405180910390fd5b50506000908152600c602052604090205490565b600060018251101580156119d757506020825111155b611a28576040805162461bcd60e51b815260206004820152601a60248201527f414b41503a20496e76616c6964206c6162656c206c656e677468000000000000604482015290519081900360640190fd5b8151602080840191909120604080518084018790528082018390528151808203830181526060909101909152805192019190912080611aae576040805162461bcd60e51b815260206004820152601760248201527f414b41503a20496e76616c6964206e6f64652068617368000000000000000000604482015290519081900360640190fd5b949350505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b3390565b6000611b1082611ae4565b611b4b5760405162461bcd60e51b815260040180806020018281038252602c8152602001806123ff602c913960400191505060405180910390fd5b6000611b5683611390565b9050806001600160a01b0316846001600160a01b03161480611b915750836001600160a01b0316611b868461094c565b6001600160a01b0316145b80611aae5750611aae8185611ab6565b611baa82611ae4565b611be55760405162461bcd60e51b815260040180806020018281038252602c8152602001806124e2602c913960400191505060405180910390fd5b6000828152600b602090815260409091208251610ccc928401906122a5565b611c0f838383611d7b565b611c198382611ebf565b610ccc8282611fb4565b611c2d8282611ff2565b611c378282611fb4565b611c4081612123565b5050565b5490565b6000611c5c846001600160a01b0316612167565b611c6857506001611aae565b604051630a85bd0160e11b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015611ce2578181015183820152602001611cca565b50505050905090810190601f168015611d0f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611d3157600080fd5b505af1158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b50516001600160e01b031916630a85bd0160e11b14915050949350505050565b826001600160a01b0316611d8e82611390565b6001600160a01b031614611dd35760405162461bcd60e51b815260040180806020018281038252602981526020018061250e6029913960400191505060405180910390fd5b6001600160a01b038216611e185760405162461bcd60e51b81526004018080602001828103825260248152602001806123db6024913960400191505060405180910390fd5b611e218161216d565b6001600160a01b0383166000908152600360205260409020611e42906121aa565b6001600160a01b0382166000908152600360205260409020611e63906121c1565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b038216600090815260056020526040812054611ee990600163ffffffff6121ca16565b600083815260066020526040902054909150808214611f84576001600160a01b0384166000908152600560205260408120805484908110611f2657fe5b906000526020600020015490508060056000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110611f6457fe5b600091825260208083209091019290925591825260069052604090208190555b6001600160a01b0384166000908152600560205260409020805490611fad906000198301612313565b5050505050565b6001600160a01b0390911660009081526005602081815260408084208054868652600684529185208290559282526001810183559183529091200155565b6001600160a01b03821661204d576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b61205681611ae4565b156120a8576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b600081815260016020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600390915290206120e7906121c1565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600780546000838152600860205260408120829055600182018355919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b3b151590565b6000818152600260205260409020546001600160a01b0316156121a757600081815260026020526040902080546001600160a01b03191690555b50565b80546121bd90600163ffffffff6121ca16565b9055565b80546001019055565b600082821115612221576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122685782800160ff19823516178555612295565b82800160010185558215612295579182015b8281111561229557823582559160200191906001019061227a565b506122a1929150612333565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122e657805160ff1916838001178555612295565b82800160010185558215612295579182015b828111156122955782518255916020019190600101906122f8565b815481835581811115610ccc57600083815260209020610ccc9181019083015b61094991905b808211156122a1576000815560010161233956fe455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f84552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f64654552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473a265627a7a72315820fad6b581bcdb67eb97ac3e02062c4c98693ea66a316c8b2acf1207be83e0b82064736f6c63430005100032", + "sourceMap": "737:5155:0:-;;;963:316;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;452:155:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;452:155:10;;;;;;;718:40:5;-1:-1:-1;;;;;;;;718:18:5;:40;:::i;:::-;2220::8;-1:-1:-1;;;;;;;;2220:18:8;:40;:::i;:::-;1316:51:9;-1:-1:-1;;;;;;;;1316:18:9;:51;:::i;:::-;825:12:11;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;847:16:11;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;951:49:11;-1:-1:-1;;;;;;;;951:18:11;:49;:::i;:::-;-1:-1:-1;1110:11:0;;-1:-1:-1;1135:27:0;;-1:-1:-1;1141:12:0;;-1:-1:-1;;;;;;1141:10:0;:12;:::i;:::-;1155:6;-1:-1:-1;;;;;1135:5:0;:27;:::i;:::-;1172:13;;;;:5;:13;;;;;-1:-1:-1;;1172:20:0;;;;:31;1178:6;;1224:12;-1:-1:-1;;;;;1224:10:0;:12;:::i;:::-;-1:-1:-1;;;;;1218:54:0;;1258:13;1218:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;963:316;737:5155;;1442:190:5;-1:-1:-1;;;;;;1517:25:5;;;;;1509:66;;;;;-1:-1:-1;;;1509:66:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1585:33:5;:20;:33;;;;;;;;;;:40;;-1:-1:-1;;1585:40:5;1621:4;1585:40;;;1442:190::o;1285:96:0:-;1364:10;1285:96;;:::o;3629:196:9:-;3692:24;3704:2;3708:7;3692:11;;;;;:24;;:::i;:::-;3727:40;3755:2;3759:7;-1:-1:-1;;;;;3727:27:9;:40;:::i;:::-;3778;3810:7;-1:-1:-1;;;;;3778:31:9;:40;:::i;:::-;3629:196;;:::o;9179:327:8:-;-1:-1:-1;;;;;9250:16:8;;9242:61;;;;;-1:-1:-1;;;9242:61:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;-1:-1:-1;;;;;9322:7:8;:16;:::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:8;-1:-1:-1;;;;;9382:25:8;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;;;;;:33;;:::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:8;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5087:183:9:-;-1:-1:-1;;;;;5200:16:9;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:9;;;;;;;;5087:183::o;5465:161::-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:9;;;;;;;5465:161::o;8092:152:8:-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:8;8218:19;;;8092:152::o;1181:89:4:-;1244:19;;1262:1;1244:19;;;1181:89::o;737:5155:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5155:0;;;-1:-1:-1;737:5155:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "737:5155:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;737:5155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;915:133:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;915:133:5;-1:-1:-1;;;;;;915:133:5;;:::i;:::-;;;;;;;;;;;;;;;;;;1112:83:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1112:83:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4237:200:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4237:200:8;;:::i;:::-;;;;-1:-1:-1;;;;;4237:200:8;;;;;;;;;;;;;;3541:411;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3541:411:8;;;;;;;;:::i;:::-;;4861:181:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4861:181:0;;:::i;5685:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5685:205:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5685:205:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5685:205:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5685:205:0;;-1:-1:-1;5685:205:0;-1:-1:-1;5685:205:0;:::i;2130:94:9:-;;;:::i;:::-;;;;;;;;;;;;;;;;5877:285:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5877:285:8;;;;;;;;;;;;;;;;;:::i;1748:229:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1748:229:9;;;;;;;;:::i;4720:135:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4720:135:0;;:::i;2129:1794::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2129:1794:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2129:1794:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2129:1794:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;2129:1794:0;;-1:-1:-1;2129:1794:0;-1:-1:-1;2129:1794:0;:::i;5252:210::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5252:210:0;;;;;;-1:-1:-1;;;;;5252:210:0;;:::i;6795:132:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6795:132:8;;;;;;;;;;;;;;;;;:::i;3929:111:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3929:111:0;;:::i;2562:196:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2562:196:9;;:::i;4046:133:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4046:133:0;;:::i;2897:223:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2897:223:8;;:::i;2471:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2471:207:8;-1:-1:-1;;;;;2471:207:8;;:::i;4449:125:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4449:125:0;;:::i;5048:198::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5048:198:0;;;;;;;:::i;1304:87:11:-;;;:::i;4730:243:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4730:243:8;;;;;;;;;;:::i;5468:211:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5468:211:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5468:211:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5468:211:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5468:211:0;;-1:-1:-1;5468:211:0;-1:-1:-1;5468:211:0;:::i;7632:265:8:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;7632:265:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7632:265:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7632:265:8;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7632:265:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7632:265:8;;-1:-1:-1;7632:265:8;;-1:-1:-1;;;;;7632:265:8:i;4580:134:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4580:134:0;;:::i;4318:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4318:125:0;;:::i;1591:202:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1591:202:11;;:::i;4185:127:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4185:127:0;;:::i;1744:379::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1744:379:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1744:379:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1744:379:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1744:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1744:379:0;;-1:-1:-1;1744:379:0;;-1:-1:-1;;;;;1744:379:0:i;5295:145:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5295:145:8;;;;;;;;;;:::i;915:133:5:-;-1:-1:-1;;;;;;1008:33:5;985:4;1008:33;;;;;;;;;;;;;;915:133::o;1112:83:11:-;1183:5;1176:12;;;;;;;;-1:-1:-1;;1176:12:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:13;;1176:12;;1183:5;;1176:12;;1183:5;1176:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:83;;:::o;4237:200:8:-;4296:7;4323:16;4331:7;4323;:16::i;:::-;4315:73;;;;-1:-1:-1;;;4315:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4406:24:8;;;;:15;:24;;;;;;-1:-1:-1;;;;;4406:24:8;;4237:200::o;3541:411::-;3604:13;3620:16;3628:7;3620;:16::i;:::-;3604:32;;3660:5;-1:-1:-1;;;;;3654:11:8;:2;-1:-1:-1;;;;;3654:11:8;;;3646:57;;;;-1:-1:-1;;;3646:57:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3722:10;-1:-1:-1;;;;;3722:19:8;;;;:58;;;3745:35;3762:5;3769:10;3745:16;:35::i;:::-;3714:148;;;;-1:-1:-1;;;3714:148:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3873:24;;;;:15;:24;;;;;;:29;;-1:-1:-1;;;;;;3873:29:8;-1:-1:-1;;;;;3873:29:8;;;;;;;;;3917:28;;3873:24;;3917:28;;;;;;;3541:411;;;:::o;4861:181:0:-;4916:6;1593:15;1601:6;1593:7;:15::i;:::-;:59;;;;;1612:40;1631:12;:10;:12::i;:::-;1645:6;1612:18;:40::i;:::-;1593:73;;;;;1665:1;1656:6;:10;1593:73;1585:134;;;;-1:-1:-1;;;1585:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4934:13;;;;:5;:13;;;;;4957:3;4934:20;;;;:26;4940:6;4992:12;:10;:12::i;:::-;-1:-1:-1;;;;;4975:60:0;-1:-1:-1;;;;;;;;;;;5014:20:0;4975:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;4861:181;;:::o;5685:205::-;5762:6;1593:15;1601:6;1593:7;:15::i;:::-;:59;;;;;1612:40;1631:12;:10;:12::i;1612:40::-;1593:73;;;;;1665:1;1656:6;:10;1593:73;1585:134;;;;-1:-1:-1;;;1585:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5780:25;5793:6;5801:3;;5780:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5780:12:0;;-1:-1:-1;;;5780:25:0:i;:::-;5851:6;5837:12;:10;:12::i;:::-;-1:-1:-1;;;;;5820:63:0;-1:-1:-1;;;;;;;;;;;5859:23:0;5820:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;5685:205;;;;:::o;2130:94:9:-;2200:10;:17;2130:94;:::o;5877:285:8:-;6019:39;6038:10;6050:7;6019:18;:39::i;:::-;6011:101;;;;-1:-1:-1;;;6011:101:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6123:32;6137:4;6143:2;6147:7;6123:13;:32::i;:::-;5877:285;;;:::o;1748:229:9:-;1828:7;1863:16;1873:5;1863:9;:16::i;:::-;1855:5;:24;1847:80;;;;-1:-1:-1;;;1847:80:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1944:19:9;;;;;;:12;:19;;;;;:26;;1964:5;;1944:26;;;;;;;;;;;;;;1937:33;;1748:229;;;;:::o;4720:135:0:-;4795:12;4778:6;1440:15;1448:6;1440:7;:15::i;:::-;:29;;;;;1468:1;1459:6;:10;1440:29;1432:83;;;;-1:-1:-1;;;1432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:13;;;;:5;:13;;;;;;;;;:22;;4819:29;;;;;;-1:-1:-1;;4819:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:22;;4819:29;;4826:22;4819:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4720:135;;;;:::o;2129:1794::-;2199:11;2532;2546:23;2553:8;2563:5;;2546:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2546:6:0;;-1:-1:-1;;;2546:23:0:i;:::-;2532:37;;2580:18;2601:42;2620:12;:10;:12::i;:::-;2634:8;2601:18;:42::i;:::-;2580:63;;2653:15;2671;2679:6;2671:7;:15::i;:::-;2653:33;;2701:10;:54;;;;;2715:40;2734:12;:10;:12::i;:::-;2748:6;2715:18;:40::i;:::-;2697:1180;;;2791:13;;;;:5;:13;;;;;:22;2779:34;;2771:72;;;;;-1:-1:-1;;;2771:72:0;;;;;;;;;;;;-1:-1:-1;;;2771:72:0;;;;;;;;;;;;;;;2922:13;;;;:5;:13;;;;;-1:-1:-1;;2922:20:0;;;;:31;3000:8;2928:6;2978:12;:10;:12::i;:::-;-1:-1:-1;;;;;2972:63:0;;3010:5;;3017:17;2972:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;2972:63:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;2972:63:0;;;;-1:-1:-1;2972:63:0;;-1:-1:-1;;;;;2972:63:0;3057:1;3050:8;;;;;;;2697:1180;3080:10;3079:11;:28;;;;;3094:13;3079:28;3075:802;;;3180:27;3186:12;:10;:12::i;:::-;3200:6;3180:5;:27::i;:::-;3221:13;;;;:5;:13;;;;;:33;;;-1:-1:-1;;3268:20:0;;;;:31;3246:8;3227:6;3324:12;:10;:12::i;:::-;-1:-1:-1;;;;;3318:59:0;;3356:5;;3363:13;3318:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3318:59:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3318:59:0;;;;-1:-1:-1;3318:59:0;;-1:-1:-1;;;;;3318:59:0;3399:1;3392:8;;;;;;;3075:802;3421:10;:41;;;;-1:-1:-1;3435:13:0;;;;:5;:13;;;;;:20;;;3459:3;-1:-1:-1;3435:27:0;3421:41;:58;;;;;3466:13;3421:58;3417:460;;;3515:13;;;;:5;:13;;;;;:22;3503:34;;3495:72;;;;;-1:-1:-1;;;3495:72:0;;;;;;;;;;;;-1:-1:-1;;;3495:72:0;;;;;;;;;;;;;;;3663:52;3677:15;3685:6;3677:7;:15::i;:::-;3694:12;:10;:12::i;:::-;3708:6;3663:13;:52::i;:::-;3729:13;;;;:5;:13;;;;;-1:-1:-1;;3729:20:0;;;;:31;3807:8;3735:6;3785:12;:10;:12::i;:::-;-1:-1:-1;;;;;3779:64:0;;3817:5;;3824:18;3779:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;3779:64:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3779:64:0;;;;-1:-1:-1;3779:64:0;;-1:-1:-1;;;;;3779:64:0;3865:1;3858:8;;;;;;;3417:460;3915:1;3908:8;;;;;2129:1794;;;;;;:::o;5252:210::-;5325:6;1593:15;1601:6;1593:7;:15::i;:::-;:59;;;;;1612:40;1631:12;:10;:12::i;1612:40::-;1593:73;;;;;1665:1;1656:6;:10;1593:73;1585:134;;;;-1:-1:-1;;;1585:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5343:13;;;;:5;:13;;;;;:24;;:32;;-1:-1:-1;;;;;;5343:32:0;-1:-1:-1;;;;;5343:32:0;;;;;:13;5407:12;:10;:12::i;:::-;-1:-1:-1;;;;;5390:65:0;-1:-1:-1;;;;;;;;;;;5429:25:0;5390:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;5252:210;;;:::o;6795:132:8:-;6881:39;6898:4;6904:2;6908:7;6881:39;;;;;;;;;;;;:16;:39::i;3929:111:0:-;3981:4;4004:15;4012:6;4004:7;:15::i;:::-;:29;;;;;4032:1;4023:6;:10;4004:29;3997:36;3929:111;-1:-1:-1;;3929:111:0:o;2562:196:9:-;2620:7;2655:13;:11;:13::i;:::-;2647:5;:21;2639:78;;;;-1:-1:-1;;;2639:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2734:10;2745:5;2734:17;;;;;;;;;;;;;;;;2727:24;;2562:196;;;:::o;4046:133:0:-;4109:4;4132:40;4151:12;:10;:12::i;:::-;4165:6;4132:18;:40::i;2897:223:8:-;2952:7;2987:20;;;:11;:20;;;;;;-1:-1:-1;;;;;2987:20:8;3025:19;3017:73;;;;-1:-1:-1;;;3017:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:207;2526:7;-1:-1:-1;;;;;2553:19:8;;2545:74;;;;-1:-1:-1;;;2545:74:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2637:24:8;;;;;;:17;:24;;;;;:34;;:32;:34::i;4449:125:0:-;4523:4;4506:6;1440:15;1448:6;1440:7;:15::i;:::-;:29;;;;;1468:1;1459:6;:10;1440:29;1432:83;;;;-1:-1:-1;;;1432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4546:13:0;;;;:5;:13;;;;;:21;;;;4449:125::o;5048:198::-;5115:6;1593:15;1601:6;1593:7;:15::i;:::-;:59;;;;;1612:40;1631:12;:10;:12::i;1612:40::-;1593:73;;;;;1665:1;1656:6;:10;1593:73;1585:134;;;;-1:-1:-1;;;1585:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5133:13;;;;:5;:13;;;;;:21;;:29;;;5139:6;5194:12;:10;:12::i;:::-;-1:-1:-1;;;;;5177:62:0;-1:-1:-1;;;;;;;;;;;5216:22:0;5177:62;;;;;;;;;;;1304:87:11;1377:7;1370:14;;;;;;;;-1:-1:-1;;1370:14:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:13;;1370:14;;1377:7;;1370:14;;1377:7;1370:14;;;;;;;;;;;;;;;;;;;;;;;;4730:243:8;-1:-1:-1;;;;;4809:16:8;;4815:10;4809:16;;4801:54;;;;;-1:-1:-1;;;4801:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4885:10;4866:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;4866:34:8;;;;;;;;;;;;:45;;-1:-1:-1;;4866:45:8;;;;;;;;;;4926:40;;;;;;;4866:34;;4885:10;4926:40;;;;;;;;;;;4730:243;;:::o;5468:211:0:-;5546:6;1593:15;1601:6;1593:7;:15::i;:::-;:59;;;;;1612:40;1631:12;:10;:12::i;1612:40::-;1593:73;;;;;1665:1;1656:6;:10;1593:73;1585:134;;;;-1:-1:-1;;;1585:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5564:13;;;;:5;:13;;;;;:30;;:22;;5589:5;;5564:30;:::i;:::-;;5640:6;5626:12;:10;:12::i;:::-;-1:-1:-1;;;;;5609:63:0;-1:-1:-1;;;;;;;;;;;5648:23:0;5609:63;;;;;;;;;;;7632:265:8;7738:31;7751:4;7757:2;7761:7;7738:12;:31::i;:::-;7787:48;7810:4;7816:2;7820:7;7829:5;7787:22;:48::i;:::-;7779:111;;;;-1:-1:-1;;;7779:111:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:265;;;;:::o;4580:134:0:-;4657:7;4640:6;1440:15;1448:6;1440:7;:15::i;:::-;:29;;;;;1468:1;1459:6;:10;1440:29;1432:83;;;;-1:-1:-1;;;1432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4683:13:0;;;;:5;:13;;;;;:24;;;-1:-1:-1;;;;;4683:24:0;;4580:134::o;4318:125::-;4393:4;4376:6;1440:15;1448:6;1440:7;:15::i;:::-;:29;;;;;1468:1;1459:6;:10;1440:29;1432:83;;;;-1:-1:-1;;;1432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4416:13:0;;;;:5;:13;;;;;:20;;;;4318:125::o;1591:202:11:-;1649:13;1682:16;1690:7;1682;:16::i;:::-;1674:76;;;;-1:-1:-1;;;1674:76:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;;;:10;:19;;;;;;;;;1760:26;;;;;;-1:-1:-1;;1760:26:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1767:19;;1760:26;;1767:19;1760:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:202;;;:::o;4185:127:0:-;4260:4;4243:6;1440:15;1448:6;1440:7;:15::i;:::-;:29;;;;;1468:1;1459:6;:10;1440:29;1432:83;;;;-1:-1:-1;;;1432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4283:13:0;;;;:5;:13;;;;;:22;;4185:127::o;1744:379::-;1816:7;1859:1;1843:5;:12;:17;;:39;;;;;1880:2;1864:5;:12;:18;;1843:39;1835:78;;;;;-1:-1:-1;;;1835:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:16;;;;;;;;;;1997:31;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1997:31:0;;;;;;;1987:42;;;;;;;;2048:10;2040:46;;;;;-1:-1:-1;;;2040:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:6;1744:379;-1:-1:-1;;;;1744:379:0:o;5295:145:8:-;-1:-1:-1;;;;;5398:25:8;;;5375:4;5398:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;5295:145::o;8092:152::-;8149:4;8181:20;;;:11;:20;;;;;;-1:-1:-1;;;;;8181:20:8;8218:19;;;8092:152::o;1285:96:0:-;1364:10;1285:96;:::o;8605:329:8:-;8690:4;8714:16;8722:7;8714;:16::i;:::-;8706:73;;;;-1:-1:-1;;;8706:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8789:13;8805:16;8813:7;8805;:16::i;:::-;8789:32;;8850:5;-1:-1:-1;;;;;8839:16:8;:7;-1:-1:-1;;;;;8839:16:8;;:51;;;;8883:7;-1:-1:-1;;;;;8859:31:8;:20;8871:7;8859:11;:20::i;:::-;-1:-1:-1;;;;;8859:31:8;;8839:51;:87;;;;8894:32;8911:5;8918:7;8894:16;:32::i;2032:192:11:-;2117:16;2125:7;2117;:16::i;:::-;2109:73;;;;-1:-1:-1;;;2109:73:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:19;;;;:10;:19;;;;;;;;:25;;;;;;;;:::i;3133:239:9:-;3218:38;3238:4;3244:2;3248:7;3218:19;:38::i;:::-;3267:47;3300:4;3306:7;3267:32;:47::i;:::-;3325:40;3353:2;3357:7;3325:27;:40::i;3629:196::-;3692:24;3704:2;3708:7;3692:11;:24::i;:::-;3727:40;3755:2;3759:7;3727:27;:40::i;:::-;3778;3810:7;3778:31;:40::i;:::-;3629:196;;:::o;1063:112:4:-;1154:14;;1063:112::o;11771:347:8:-;11892:4;11917:15;:2;-1:-1:-1;;;;;11917:13:8;;:15::i;:::-;11912:58;;-1:-1:-1;11955:4:8;11948:11;;11912:58;11996:70;;-1:-1:-1;;;11996:70:8;;12033:10;11996:70;;;;;;-1:-1:-1;;;;;11996:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:13;;11996:36;;;;;;12033:10;;12045:4;;12051:7;;12060:5;;11996:70;;;;;;;;;;;11980:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11996:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11996:70:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11996:70:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11996:70:8;-1:-1:-1;;;;;;12084:26:8;-1:-1:-1;;;12084:26:8;;-1:-1:-1;;11771:347:8;;;;;;:::o;10751:447::-;10864:4;-1:-1:-1;;;;;10844:24:8;:16;10852:7;10844;:16::i;:::-;-1:-1:-1;;;;;10844:24:8;;10836:78;;;;-1:-1:-1;;;10836:78:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10932:16:8;;10924:65;;;;-1:-1:-1;;;10924:65:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11000:23;11015:7;11000:14;:23::i;:::-;-1:-1:-1;;;;;11034:23:8;;;;;;:17;:23;;;;;:35;;:33;:35::i;:::-;-1:-1:-1;;;;;11079:21:8;;;;;;:17;:21;;;;;:33;;:31;:33::i;:::-;11123:20;;;;:11;:20;;;;;;:25;;-1:-1:-1;;;;;;11123:25:8;-1:-1:-1;;;;;11123:25:8;;;;;;;;;11164:27;;11123:20;;11164:27;;;;;;;10751:447;;;:::o;6241:1128:9:-;-1:-1:-1;;;;;6528:18:9;;6503:22;6528:18;;;:12;:18;;;;;:25;:32;;6558:1;6528:32;:29;:32;:::i;:::-;6570:18;6591:26;;;:17;:26;;;;;;6503:57;;-1:-1:-1;6721:28:9;;;6717:323;;-1:-1:-1;;;;;6787:18:9;;6765:19;6787:18;;;:12;:18;;;;;:34;;6806:14;;6787:34;;;;;;;;;;;;;;6765:56;;6869:11;6836:12;:18;6849:4;-1:-1:-1;;;;;6836:18:9;-1:-1:-1;;;;;6836:18:9;;;;;;;;;;;;6855:10;6836:30;;;;;;;;;;;;;;;;;;;:44;;;;6952:30;;;:17;:30;;;;;:43;;;6717:323;-1:-1:-1;;;;;7126:18:9;;;;;;:12;:18;;;;;:27;;;;;-1:-1:-1;;7126:27:9;;;:::i;:::-;;6241:1128;;;;:::o;5087:183::-;-1:-1:-1;;;;;5200:16:9;;;;;;;:12;:16;;;;;;;;:23;;5171:26;;;:17;:26;;;;;:52;;;5233:16;;;39:1:-1;23:18;;45:23;;5233:30:9;;;;;;;;5087:183::o;9179:327:8:-;-1:-1:-1;;;;;9250:16:8;;9242:61;;;;;-1:-1:-1;;;9242:61:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9322:16;9330:7;9322;:16::i;:::-;9321:17;9313:58;;;;;-1:-1:-1;;;9313:58:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:20;;;;:11;:20;;;;;;;;:25;;-1:-1:-1;;;;;;9382:25:8;-1:-1:-1;;;;;9382:25:8;;;;;;;;9417:21;;:17;:21;;;;;:33;;:31;:33::i;:::-;9466;;9491:7;;-1:-1:-1;;;;;9466:33:8;;;9483:1;;9466:33;;9483:1;;9466:33;9179:327;;:::o;5465:161:9:-;5568:10;:17;;5541:24;;;;:15;:24;;;;;:44;;;39:1:-1;23:18;;45:23;;5595:24:9;;;;;;;5465:161::o;542:413:16:-;902:20;940:8;;;542:413::o;12280:171:8:-;12379:1;12343:24;;;:15;:24;;;;;;-1:-1:-1;;;;;12343:24:8;:38;12339:106;;12432:1;12397:24;;;:15;:24;;;;;:37;;-1:-1:-1;;;;;;12397:37:8;;;12339:106;12280:171;:::o;1276:108:4:-;1356:14;;:21;;1375:1;1356:21;:18;:21;:::i;:::-;1339:38;;1276:108::o;1181:89::-;1244:19;;1262:1;1244:19;;;1181:89::o;1274:179:7:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:7;;;1274:179::o;737:5155:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;737:5155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:5155:0;;;-1:-1:-1;737:5155:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "source": "// Copyright (C) 2019 Christian Felde\n// Copyright (C) 2019 Mohamed Elshami\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npragma solidity ^0.5.0;\n\nimport \"./IAKAP.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721Full.sol\";\n\ncontract AKAF is IAKAP, ERC721Full {\n struct Node {\n uint parentId;\n uint expiry;\n uint seeAlso;\n address seeAddress;\n bytes nodeBody;\n }\n\n mapping(uint => Node) private nodes;\n\n constructor() ERC721Full(\"AKA Forever Registry\", \"AKAF\") public {\n // Create the special root node and assigned msg.sender as owner\n uint nodeId = 0;\n _mint(_msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, nodeId, \"\", ClaimCase.NEW);\n }\n\n function _msgSender() internal view returns (address payable) {\n return msg.sender;\n }\n\n modifier onlyExisting(uint nodeId) {\n require(_exists(nodeId) && nodeId > 0, \"AKAP: operator query for nonexistent node\");\n\n _;\n }\n\n modifier onlyApproved(uint nodeId) {\n require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId) && nodeId > 0, \"AKAP: set value caller is not owner nor approved\");\n\n _;\n }\n\n function hashOf(uint parentId, bytes memory label) public pure returns (uint id) {\n require(label.length >= 1 && label.length <= 32, \"AKAP: Invalid label length\");\n\n bytes32 labelHash = keccak256(label);\n bytes32 nodeId = keccak256(abi.encode(parentId, labelHash));\n\n require(nodeId > 0, \"AKAP: Invalid node hash\");\n\n return uint(nodeId);\n }\n\n function claim(uint parentId, bytes calldata label) external returns (uint status) {\n // Claim logic is as found in AKAP, but with an expiry timestamp set to \"forever\".\n // Owners of a node on an AKAF contract does hence not need to reclaim their nodes.\n // Node owners may still explicitly expire a node if they wish.\n\n // Get hash/id of the node caller is claiming\n uint nodeId = hashOf(parentId, label);\n\n bool isParentOwner = _isApprovedOrOwner(_msgSender(), parentId);\n bool nodeExists = _exists(nodeId);\n\n if (nodeExists && _isApprovedOrOwner(_msgSender(), nodeId)) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Caller is current owner/approved, extend lease..\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.RECLAIM);\n\n return 1;\n } else if (!nodeExists && isParentOwner) {\n // Node does not exist, allocate to caller..\n _mint(_msgSender(), nodeId);\n nodes[nodeId].parentId = parentId;\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.NEW);\n\n return 2;\n } else if (nodeExists && nodes[nodeId].expiry <= now && isParentOwner) {\n require(parentId == nodes[nodeId].parentId, \"AKAP: Invalid parent hash\");\n\n // Node exists and is expired, allocate to caller and extend lease..\n _transferFrom(ownerOf(nodeId), _msgSender(), nodeId);\n nodes[nodeId].expiry = uint(-1);\n emit Claim(_msgSender(), nodeId, parentId, label, ClaimCase.TRANSFER);\n\n return 3;\n }\n\n // No action\n return 0;\n }\n\n function exists(uint nodeId) external view returns (bool) {\n return _exists(nodeId) && nodeId > 0;\n }\n\n function isApprovedOrOwner(uint nodeId) external view returns (bool) {\n return _isApprovedOrOwner(_msgSender(), nodeId);\n }\n\n function parentOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].parentId;\n }\n\n function expiryOf(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].expiry;\n }\n\n function seeAlso(uint nodeId) external view onlyExisting(nodeId) returns (uint) {\n return nodes[nodeId].seeAlso;\n }\n\n function seeAddress(uint nodeId) external view onlyExisting(nodeId) returns (address) {\n return nodes[nodeId].seeAddress;\n }\n\n function nodeBody(uint nodeId) external view onlyExisting(nodeId) returns (bytes memory) {\n return nodes[nodeId].nodeBody;\n }\n\n function expireNode(uint nodeId) external onlyApproved(nodeId) {\n nodes[nodeId].expiry = now;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.EXPIRY);\n }\n\n function setSeeAlso(uint nodeId, uint value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAlso = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ALSO);\n }\n\n function setSeeAddress(uint nodeId, address value) external onlyApproved(nodeId) {\n nodes[nodeId].seeAddress = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.SEE_ADDRESS);\n }\n\n function setNodeBody(uint nodeId, bytes calldata value) external onlyApproved(nodeId) {\n nodes[nodeId].nodeBody = value;\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.NODE_BODY);\n }\n\n function setTokenURI(uint nodeId, string calldata uri) external onlyApproved(nodeId) {\n _setTokenURI(nodeId, uri);\n emit AttributeChanged(_msgSender(), nodeId, NodeAttribute.TOKEN_URI);\n }\n}", "sourcePath": "/private/tmp/eth/akap/contracts/AKAF.sol", "ast": { "absolutePath": "/private/tmp/eth/akap/contracts/AKAF.sol", "exportedSymbols": { "AKAF": [ - 1335 + 564 ] }, - "id": 1336, + "id": 565, "nodeType": "SourceUnit", "nodes": [ { - "id": 784, + "id": 1, "literals": [ "solidity", "^", @@ -808,27 +808,27 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "627:23:2" + "src": "627:23:0" }, { "absolutePath": "/private/tmp/eth/akap/contracts/IAKAP.sol", "file": "./IAKAP.sol", - "id": 785, + "id": 2, "nodeType": "ImportDirective", - "scope": 1336, - "sourceUnit": 2090, - "src": "652:21:2", + "scope": 565, + "sourceUnit": 1319, + "src": "652:21:0", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", "file": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", - "id": 786, + "id": 3, "nodeType": "ImportDirective", - "scope": 1336, - "sourceUnit": 3317, - "src": "674:61:2", + "scope": 565, + "sourceUnit": 2546, + "src": "674:61:0", "symbolAliases": [], "unitAlias": "" }, @@ -838,82 +838,82 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 4, "name": "IAKAP", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "754:5:2", + "referencedDeclaration": 1318, + "src": "754:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAKAP_$2089", + "typeIdentifier": "t_contract$_IAKAP_$1318", "typeString": "contract IAKAP" } }, - "id": 788, + "id": 5, "nodeType": "InheritanceSpecifier", - "src": "754:5:2" + "src": "754:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 789, + "id": 6, "name": "ERC721Full", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3316, - "src": "761:10:2", + "referencedDeclaration": 2545, + "src": "761:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Full_$3316", + "typeIdentifier": "t_contract$_ERC721Full_$2545", "typeString": "contract ERC721Full" } }, - "id": 790, + "id": 7, "nodeType": "InheritanceSpecifier", - "src": "761:10:2" + "src": "761:10:0" } ], "contractDependencies": [ - 2089, - 2247, - 2257, - 2955, - 3292, - 3316, - 3445, - 3548, - 3575, - 3598 + 1318, + 1476, + 1486, + 2184, + 2521, + 2545, + 2674, + 2777, + 2804, + 2827 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1335, + "id": 564, "linearizedBaseContracts": [ - 1335, - 3316, - 3445, - 3598, - 3292, - 3575, - 2955, - 3548, - 2247, - 2257, - 2089 + 564, + 2545, + 2674, + 2827, + 2521, + 2804, + 2184, + 2777, + 1476, + 1486, + 1318 ], "name": "AKAF", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "AKAF.Node", - "id": 801, + "id": 18, "members": [ { "constant": false, - "id": 792, + "id": 9, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "800:13:2", + "scope": 18, + "src": "800:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -921,10 +921,10 @@ "typeString": "uint256" }, "typeName": { - "id": 791, + "id": 8, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "800:4:2", + "src": "800:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -935,11 +935,11 @@ }, { "constant": false, - "id": 794, + "id": 11, "name": "expiry", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "823:11:2", + "scope": 18, + "src": "823:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -947,10 +947,10 @@ "typeString": "uint256" }, "typeName": { - "id": 793, + "id": 10, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "823:4:2", + "src": "823:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -961,11 +961,11 @@ }, { "constant": false, - "id": 796, + "id": 13, "name": "seeAlso", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "844:12:2", + "scope": 18, + "src": "844:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -973,10 +973,10 @@ "typeString": "uint256" }, "typeName": { - "id": 795, + "id": 12, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "844:4:2", + "src": "844:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -987,11 +987,11 @@ }, { "constant": false, - "id": 798, + "id": 15, "name": "seeAddress", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "866:18:2", + "scope": 18, + "src": "866:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -999,10 +999,10 @@ "typeString": "address" }, "typeName": { - "id": 797, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "866:7:2", + "src": "866:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1014,11 +1014,11 @@ }, { "constant": false, - "id": 800, + "id": 17, "name": "nodeBody", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "894:14:2", + "scope": 18, + "src": "894:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1026,10 +1026,10 @@ "typeString": "bytes" }, "typeName": { - "id": 799, + "id": 16, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "894:5:2", + "src": "894:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1041,50 +1041,50 @@ ], "name": "Node", "nodeType": "StructDefinition", - "scope": 1335, - "src": "778:137:2", + "scope": 564, + "src": "778:137:0", "visibility": "public" }, { "constant": false, - "id": 805, + "id": 22, "name": "nodes", "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "921:35:2", + "scope": 564, + "src": "921:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node)" }, "typeName": { - "id": 804, + "id": 21, "keyType": { - "id": 802, + "id": 19, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "929:4:2", + "src": "929:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "921:21:2", + "src": "921:21:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node)" }, "valueType": { "contractScope": null, - "id": 803, + "id": 20, "name": "Node", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 801, - "src": "937:4:2", + "referencedDeclaration": 18, + "src": "937:4:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage_ptr", + "typeIdentifier": "t_struct$_Node_$18_storage_ptr", "typeString": "struct AKAF.Node" } } @@ -1094,22 +1094,22 @@ }, { "body": { - "id": 842, + "id": 59, "nodeType": "Block", - "src": "1027:252:2", + "src": "1027:252:0", "statements": [ { "assignments": [ - 813 + 30 ], "declarations": [ { "constant": false, - "id": 813, + "id": 30, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 842, - "src": "1110:11:2", + "scope": 59, + "src": "1110:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1117,10 +1117,10 @@ "typeString": "uint256" }, "typeName": { - "id": 812, + "id": 29, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1110:4:2", + "src": "1110:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1130,18 +1130,18 @@ "visibility": "internal" } ], - "id": 815, + "id": 32, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 814, + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1124:1:2", + "src": "1124:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1150,7 +1150,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1110:15:2" + "src": "1110:15:0" }, { "expression": { @@ -1161,18 +1161,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 817, + "id": 34, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1141:10:2", + "referencedDeclaration": 69, + "src": "1141:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 818, + "id": 35, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,7 +1180,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1141:12:2", + "src": "1141:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1188,12 +1188,12 @@ }, { "argumentTypes": null, - "id": 819, + "id": 36, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1155:6:2", + "referencedDeclaration": 30, + "src": "1155:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1211,20 +1211,20 @@ "typeString": "uint256" } ], - "id": 816, + "id": 33, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [ - 3099 + 2328 ], - "referencedDeclaration": 3099, - "src": "1135:5:2", + "referencedDeclaration": 2328, + "src": "1135:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 820, + "id": 37, "isConstant": false, "isLValue": false, "isPure": false, @@ -1232,20 +1232,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:27:2", + "src": "1135:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 821, + "id": 38, "nodeType": "ExpressionStatement", - "src": "1135:27:2" + "src": "1135:27:0" }, { "expression": { "argumentTypes": null, - "id": 830, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -1256,26 +1256,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 822, + "id": 39, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "1172:5:2", + "referencedDeclaration": 22, + "src": "1172:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 824, + "id": 41, "indexExpression": { "argumentTypes": null, - "id": 823, + "id": 40, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1178:6:2", + "referencedDeclaration": 30, + "src": "1178:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1286,21 +1286,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1172:13:2", + "src": "1172:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 825, + "id": 42, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "1172:20:2", + "referencedDeclaration": 11, + "src": "1172:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,7 +1313,7 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 45, "isConstant": false, "isLValue": false, "isPure": true, @@ -1321,18 +1321,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "1200:2:2", + "src": "1200:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 827, + "id": 44, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1201:1:2", + "src": "1201:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1353,20 +1353,20 @@ "typeString": "int_const -1" } ], - "id": 826, + "id": 43, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1195:4:2", + "src": "1195:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 829, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, @@ -1374,21 +1374,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1195:8:2", + "src": "1195:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1172:31:2", + "src": "1172:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 831, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1172:31:2" + "src": "1172:31:0" }, { "eventCall": { @@ -1399,18 +1399,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 833, + "id": 50, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1224:10:2", + "referencedDeclaration": 69, + "src": "1224:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 834, + "id": 51, "isConstant": false, "isLValue": false, "isPure": false, @@ -1418,7 +1418,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1224:12:2", + "src": "1224:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1426,12 +1426,12 @@ }, { "argumentTypes": null, - "id": 835, + "id": 52, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1238:6:2", + "referencedDeclaration": 30, + "src": "1238:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1439,12 +1439,12 @@ }, { "argumentTypes": null, - "id": 836, + "id": 53, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1246:6:2", + "referencedDeclaration": 30, + "src": "1246:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1453,14 +1453,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 837, + "id": 54, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1254:2:2", + "src": "1254:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -1472,18 +1472,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 838, + "id": 55, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "1258:9:2", + "referencedDeclaration": 1094, + "src": "1258:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 839, + "id": 56, "isConstant": false, "isLValue": false, "isPure": true, @@ -1491,9 +1491,9 @@ "memberName": "NEW", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1258:13:2", + "src": "1258:13:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -1517,22 +1517,22 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 832, + "id": 49, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1218:5:2", + "referencedDeclaration": 1112, + "src": "1218:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 840, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -1540,20 +1540,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1218:54:2", + "src": "1218:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 841, + "id": 58, "nodeType": "EmitStatement", - "src": "1213:59:2" + "src": "1213:59:0" } ] }, "documentation": null, - "id": 843, + "id": 60, "implemented": true, "kind": "constructor", "modifiers": [ @@ -1562,14 +1562,14 @@ { "argumentTypes": null, "hexValue": "414b4120466f7265766572205265676973747279", - "id": 808, + "id": 25, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "988:22:2", + "src": "988:22:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cae7ceeb2ebe151f1c27619f938a56491425da9af3053c9e79e96783851bd6e3", @@ -1580,14 +1580,14 @@ { "argumentTypes": null, "hexValue": "414b4146", - "id": 809, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1012:6:2", + "src": "1012:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a508d8c7eae35b3a6e2f5a6804bed7b2f7bf00c46f7af065a48ea5aa52ab21e5", @@ -1596,67 +1596,67 @@ "value": "AKAF" } ], - "id": 810, + "id": 27, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 24, "name": "ERC721Full", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "977:10:2", + "referencedDeclaration": 2545, + "src": "977:10:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Full_$3316_$", + "typeIdentifier": "t_type$_t_contract$_ERC721Full_$2545_$", "typeString": "type(contract ERC721Full)" } }, "nodeType": "ModifierInvocation", - "src": "977:42:2" + "src": "977:42:0" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 23, "nodeType": "ParameterList", "parameters": [], - "src": "974:2:2" + "src": "974:2:0" }, "returnParameters": { - "id": 811, + "id": 28, "nodeType": "ParameterList", "parameters": [], - "src": "1027:0:2" + "src": "1027:0:0" }, - "scope": 1335, - "src": "963:316:2", + "scope": 564, + "src": "963:316:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 851, + "id": 68, "nodeType": "Block", - "src": "1347:34:2", + "src": "1347:34:0", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 848, + "id": 65, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3648, - "src": "1364:3:2", + "referencedDeclaration": 2877, + "src": "1364:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 849, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, @@ -1664,43 +1664,43 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1364:10:2", + "src": "1364:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 847, - "id": 850, + "functionReturnParameters": 64, + "id": 67, "nodeType": "Return", - "src": "1357:17:2" + "src": "1357:17:0" } ] }, "documentation": null, - "id": 852, + "id": 69, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { - "id": 844, + "id": 61, "nodeType": "ParameterList", "parameters": [], - "src": "1304:2:2" + "src": "1304:2:0" }, "returnParameters": { - "id": 847, + "id": 64, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 846, + "id": 63, "name": "", "nodeType": "VariableDeclaration", - "scope": 852, - "src": "1330:15:2", + "scope": 69, + "src": "1330:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1708,10 +1708,10 @@ "typeString": "address payable" }, "typeName": { - "id": 845, + "id": 62, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1330:15:2", + "src": "1330:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1722,19 +1722,19 @@ "visibility": "internal" } ], - "src": "1329:17:2" + "src": "1329:17:0" }, - "scope": 1335, - "src": "1285:96:2", + "scope": 564, + "src": "1285:96:0", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 864, + "id": 85, "nodeType": "Block", - "src": "1422:98:2", + "src": "1422:112:0", "statements": [ { "expression": { @@ -1742,48 +1742,117 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 858, - "name": "nodeId", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 75, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1448:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 74, + "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "1448:6:2", + "referencedDeclaration": 1924, + "src": "1440:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" } + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1440:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 77, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1459:6:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 857, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "1440:7:2", + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1468:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1459:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1440:15:2", + "src": "1440:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1792,14 +1861,14 @@ { "argumentTypes": null, "hexValue": "414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f6465", - "id": 860, + "id": 81, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1457:43:2", + "src": "1471:43:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", @@ -1819,21 +1888,21 @@ "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" } ], - "id": 856, + "id": 73, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1432:7:2", + "referencedDeclaration": 2881, + "src": "1432:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 861, + "id": 82, "isConstant": false, "isLValue": false, "isPure": false, @@ -1841,38 +1910,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1432:69:2", + "src": "1432:83:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 862, + "id": 83, "nodeType": "ExpressionStatement", - "src": "1432:69:2" + "src": "1432:83:0" }, { - "id": 863, + "id": 84, "nodeType": "PlaceholderStatement", - "src": "1512:1:2" + "src": "1526:1:0" } ] }, "documentation": null, - "id": 865, + "id": 86, "name": "onlyExisting", "nodeType": "ModifierDefinition", "parameters": { - "id": 855, + "id": 72, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 854, + "id": 71, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 865, - "src": "1409:11:2", + "scope": 86, + "src": "1409:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1880,10 +1949,10 @@ "typeString": "uint256" }, "typeName": { - "id": 853, + "id": 70, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1409:4:2", + "src": "1409:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1893,16 +1962,16 @@ "visibility": "internal" } ], - "src": "1408:13:2" + "src": "1408:13:0" }, - "src": "1387:133:2", + "src": "1387:147:0", "visibility": "internal" }, { "body": { - "id": 883, + "id": 108, "nodeType": "Block", - "src": "1561:149:2", + "src": "1575:163:0", "statements": [ { "expression": { @@ -1914,146 +1983,215 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 878, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "nodeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "1587:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 870, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "1579:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 872, + "id": 99, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1579:15:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 874, - "name": "_msgSender", + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 92, + "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1617:10:2", + "referencedDeclaration": 88, + "src": "1601:6:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1617:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" } - }, - { - "argumentTypes": null, - "id": 876, - "name": "nodeId", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 91, + "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "1631:6:2", + "referencedDeclaration": 1924, + "src": "1593:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" } + }, + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1593:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 95, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "1631:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 96, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1631:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 97, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "1645:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 873, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "1598:18:2", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 94, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "1612:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1612:40:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 877, + "src": "1593:59:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 102, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1598:40:2", + "leftExpression": { + "argumentTypes": null, + "id": 100, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "1656:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1665:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1656:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1579:59:2", + "src": "1593:73:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2062,14 +2200,14 @@ { "argumentTypes": null, "hexValue": "414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 879, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1640:50:2", + "src": "1668:50:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", @@ -2089,21 +2227,21 @@ "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" } ], - "id": 869, + "id": 90, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1571:7:2", + "referencedDeclaration": 2881, + "src": "1585:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 880, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -2111,38 +2249,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1571:120:2", + "src": "1585:134:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 881, + "id": 106, "nodeType": "ExpressionStatement", - "src": "1571:120:2" + "src": "1585:134:0" }, { - "id": 882, + "id": 107, "nodeType": "PlaceholderStatement", - "src": "1702:1:2" + "src": "1730:1:0" } ] }, "documentation": null, - "id": 884, + "id": 109, "name": "onlyApproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 868, + "id": 89, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 867, + "id": 88, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 884, - "src": "1548:11:2", + "scope": 109, + "src": "1562:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2150,10 +2288,10 @@ "typeString": "uint256" }, "typeName": { - "id": 866, + "id": 87, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:2", + "src": "1562:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2163,16 +2301,16 @@ "visibility": "internal" } ], - "src": "1547:13:2" + "src": "1561:13:0" }, - "src": "1526:184:2", + "src": "1540:198:0", "visibility": "internal" }, { "body": { - "id": 933, + "id": 158, "nodeType": "Block", - "src": "1797:298:2", + "src": "1825:298:0", "statements": [ { "expression": { @@ -2184,7 +2322,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 902, + "id": 127, "isConstant": false, "isLValue": false, "isPure": false, @@ -2195,7 +2333,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 897, + "id": 122, "isConstant": false, "isLValue": false, "isPure": false, @@ -2204,18 +2342,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 894, + "id": 119, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1815:5:2", + "referencedDeclaration": 113, + "src": "1843:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 895, + "id": 120, "isConstant": false, "isLValue": false, "isPure": false, @@ -2223,7 +2361,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1815:12:2", + "src": "1843:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2234,14 +2372,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 896, + "id": 121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1831:1:2", + "src": "1859:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2249,7 +2387,7 @@ }, "value": "1" }, - "src": "1815:17:2", + "src": "1843:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2263,7 +2401,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 901, + "id": 126, "isConstant": false, "isLValue": false, "isPure": false, @@ -2272,18 +2410,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 898, + "id": 123, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1836:5:2", + "referencedDeclaration": 113, + "src": "1864:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 899, + "id": 124, "isConstant": false, "isLValue": false, "isPure": false, @@ -2291,7 +2429,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1836:12:2", + "src": "1864:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2302,14 +2440,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 900, + "id": 125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1852:2:2", + "src": "1880:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -2317,13 +2455,13 @@ }, "value": "32" }, - "src": "1836:18:2", + "src": "1864:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1815:39:2", + "src": "1843:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2332,14 +2470,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c6964206c6162656c206c656e677468", - "id": 903, + "id": 128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1856:28:2", + "src": "1884:28:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", @@ -2359,21 +2497,21 @@ "typeString": "literal_string \"AKAP: Invalid label length\"" } ], - "id": 893, + "id": 118, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1807:7:2", + "referencedDeclaration": 2881, + "src": "1835:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 904, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, @@ -2381,28 +2519,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1807:78:2", + "src": "1835:78:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 905, + "id": 130, "nodeType": "ExpressionStatement", - "src": "1807:78:2" + "src": "1835:78:0" }, { "assignments": [ - 907 + 132 ], "declarations": [ { "constant": false, - "id": 907, + "id": 132, "name": "labelHash", "nodeType": "VariableDeclaration", - "scope": 933, - "src": "1896:17:2", + "scope": 158, + "src": "1924:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2410,10 +2548,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 906, + "id": 131, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1896:7:2", + "src": "1924:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2423,18 +2561,18 @@ "visibility": "internal" } ], - "id": 911, + "id": 136, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 909, + "id": 134, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1926:5:2", + "referencedDeclaration": 113, + "src": "1954:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2448,18 +2586,18 @@ "typeString": "bytes memory" } ], - "id": 908, + "id": 133, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3642, - "src": "1916:9:2", + "referencedDeclaration": 2871, + "src": "1944:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 910, + "id": 135, "isConstant": false, "isLValue": false, "isPure": false, @@ -2467,27 +2605,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1916:16:2", + "src": "1944:16:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1896:36:2" + "src": "1924:36:0" }, { "assignments": [ - 913 + 138 ], "declarations": [ { "constant": false, - "id": 913, + "id": 138, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 933, - "src": "1942:14:2", + "scope": 158, + "src": "1970:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2495,10 +2633,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 912, + "id": 137, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1942:7:2", + "src": "1970:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2508,7 +2646,7 @@ "visibility": "internal" } ], - "id": 921, + "id": 146, "initialValue": { "argumentTypes": null, "arguments": [ @@ -2517,12 +2655,12 @@ "arguments": [ { "argumentTypes": null, - "id": 917, + "id": 142, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "1980:8:2", + "referencedDeclaration": 111, + "src": "2008:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2530,12 +2668,12 @@ }, { "argumentTypes": null, - "id": 918, + "id": 143, "name": "labelHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "1990:9:2", + "referencedDeclaration": 132, + "src": "2018:9:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2555,18 +2693,18 @@ ], "expression": { "argumentTypes": null, - "id": 915, + "id": 140, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "1969:3:2", + "referencedDeclaration": 2864, + "src": "1997:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 916, + "id": 141, "isConstant": false, "isLValue": false, "isPure": true, @@ -2574,13 +2712,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1969:10:2", + "src": "1997:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 919, + "id": 144, "isConstant": false, "isLValue": false, "isPure": false, @@ -2588,7 +2726,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1969:31:2", + "src": "1997:31:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2602,18 +2740,18 @@ "typeString": "bytes memory" } ], - "id": 914, + "id": 139, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3642, - "src": "1959:9:2", + "referencedDeclaration": 2871, + "src": "1987:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 920, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -2621,14 +2759,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1959:42:2", + "src": "1987:42:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1942:59:2" + "src": "1970:59:0" }, { "expression": { @@ -2640,19 +2778,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 925, + "id": 150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 923, + "id": 148, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "2020:6:2", + "referencedDeclaration": 138, + "src": "2048:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2663,14 +2801,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 924, + "id": 149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2029:1:2", + "src": "2057:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2678,7 +2816,7 @@ }, "value": "0" }, - "src": "2020:10:2", + "src": "2048:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2687,14 +2825,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c6964206e6f64652068617368", - "id": 926, + "id": 151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2032:25:2", + "src": "2060:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", @@ -2714,21 +2852,21 @@ "typeString": "literal_string \"AKAP: Invalid node hash\"" } ], - "id": 922, + "id": 147, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "2012:7:2", + "referencedDeclaration": 2881, + "src": "2040:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 927, + "id": 152, "isConstant": false, "isLValue": false, "isPure": false, @@ -2736,15 +2874,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2012:46:2", + "src": "2040:46:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 928, + "id": 153, "nodeType": "ExpressionStatement", - "src": "2012:46:2" + "src": "2040:46:0" }, { "expression": { @@ -2752,12 +2890,12 @@ "arguments": [ { "argumentTypes": null, - "id": 930, + "id": 155, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "2081:6:2", + "referencedDeclaration": 138, + "src": "2109:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2771,20 +2909,20 @@ "typeString": "bytes32" } ], - "id": 929, + "id": 154, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2076:4:2", + "src": "2104:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 931, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -2792,37 +2930,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2076:12:2", + "src": "2104:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 892, - "id": 932, + "functionReturnParameters": 117, + "id": 157, "nodeType": "Return", - "src": "2069:19:2" + "src": "2097:19:0" } ] }, "documentation": null, - "id": 934, + "id": 159, "implemented": true, "kind": "function", "modifiers": [], "name": "hashOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 889, + "id": 114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 886, + "id": 111, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1732:13:2", + "scope": 159, + "src": "1760:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2830,10 +2968,10 @@ "typeString": "uint256" }, "typeName": { - "id": 885, + "id": 110, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1732:4:2", + "src": "1760:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2844,11 +2982,11 @@ }, { "constant": false, - "id": 888, + "id": 113, "name": "label", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1747:18:2", + "scope": 159, + "src": "1775:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2856,10 +2994,10 @@ "typeString": "bytes" }, "typeName": { - "id": 887, + "id": 112, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1747:5:2", + "src": "1775:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2869,19 +3007,19 @@ "visibility": "internal" } ], - "src": "1731:35:2" + "src": "1759:35:0" }, "returnParameters": { - "id": 892, + "id": 117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 891, + "id": 116, "name": "id", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1788:7:2", + "scope": 159, + "src": "1816:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2889,10 +3027,10 @@ "typeString": "uint256" }, "typeName": { - "id": 890, + "id": 115, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1788:4:2", + "src": "1816:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2902,32 +3040,32 @@ "visibility": "internal" } ], - "src": "1787:9:2" + "src": "1815:9:0" }, - "scope": 1335, - "src": "1716:379:2", + "scope": 564, + "src": "1744:379:0", "stateMutability": "pure", - "superFunction": 1924, + "superFunction": 1153, "visibility": "public" }, { "body": { - "id": 1101, + "id": 326, "nodeType": "Block", - "src": "2184:1711:2", + "src": "2212:1711:0", "statements": [ { "assignments": [ - 944 + 169 ], "declarations": [ { "constant": false, - "id": 944, + "id": 169, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2504:11:2", + "scope": 326, + "src": "2532:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2935,10 +3073,10 @@ "typeString": "uint256" }, "typeName": { - "id": 943, + "id": 168, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2504:4:2", + "src": "2532:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2948,18 +3086,18 @@ "visibility": "internal" } ], - "id": 949, + "id": 174, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 946, + "id": 171, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2525:8:2", + "referencedDeclaration": 161, + "src": "2553:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2967,12 +3105,12 @@ }, { "argumentTypes": null, - "id": 947, + "id": 172, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2535:5:2", + "referencedDeclaration": 163, + "src": "2563:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2990,20 +3128,20 @@ "typeString": "bytes calldata" } ], - "id": 945, + "id": 170, "name": "hashOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 934 + 159 ], - "referencedDeclaration": 934, - "src": "2518:6:2", + "referencedDeclaration": 159, + "src": "2546:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,bytes memory) pure returns (uint256)" } }, - "id": 948, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -3011,27 +3149,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2518:23:2", + "src": "2546:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2504:37:2" + "src": "2532:37:0" }, { "assignments": [ - 951 + 176 ], "declarations": [ { "constant": false, - "id": 951, + "id": 176, "name": "isParentOwner", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2552:18:2", + "scope": 326, + "src": "2580:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3039,10 +3177,10 @@ "typeString": "bool" }, "typeName": { - "id": 950, + "id": 175, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2552:4:2", + "src": "2580:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3052,7 +3190,7 @@ "visibility": "internal" } ], - "id": 957, + "id": 182, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3061,18 +3199,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 953, + "id": 178, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2592:10:2", + "referencedDeclaration": 69, + "src": "2620:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 954, + "id": 179, "isConstant": false, "isLValue": false, "isPure": false, @@ -3080,7 +3218,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2592:12:2", + "src": "2620:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3088,12 +3226,12 @@ }, { "argumentTypes": null, - "id": 955, + "id": 180, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2606:8:2", + "referencedDeclaration": 161, + "src": "2634:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3111,18 +3249,18 @@ "typeString": "uint256" } ], - "id": 952, + "id": 177, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "2573:18:2", + "referencedDeclaration": 1963, + "src": "2601:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 956, + "id": 181, "isConstant": false, "isLValue": false, "isPure": false, @@ -3130,27 +3268,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2573:42:2", + "src": "2601:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "2552:63:2" + "src": "2580:63:0" }, { "assignments": [ - 959 + 184 ], "declarations": [ { "constant": false, - "id": 959, + "id": 184, "name": "nodeExists", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2625:15:2", + "scope": 326, + "src": "2653:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3158,10 +3296,10 @@ "typeString": "bool" }, "typeName": { - "id": 958, + "id": 183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2625:4:2", + "src": "2653:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3171,18 +3309,18 @@ "visibility": "internal" } ], - "id": 963, + "id": 188, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 961, + "id": 186, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2651:6:2", + "referencedDeclaration": 169, + "src": "2679:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3196,18 +3334,18 @@ "typeString": "uint256" } ], - "id": 960, + "id": 185, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "2643:7:2", + "referencedDeclaration": 1924, + "src": "2671:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 962, + "id": 187, "isConstant": false, "isLValue": false, "isPure": false, @@ -3215,14 +3353,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2643:15:2", + "src": "2671:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "2625:33:2" + "src": "2653:33:0" }, { "condition": { @@ -3231,19 +3369,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 970, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 964, + "id": 189, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "2673:10:2", + "referencedDeclaration": 184, + "src": "2701:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3259,18 +3397,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 966, + "id": 191, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2706:10:2", + "referencedDeclaration": 69, + "src": "2734:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 967, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -3278,7 +3416,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2706:12:2", + "src": "2734:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3286,12 +3424,12 @@ }, { "argumentTypes": null, - "id": 968, + "id": 193, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2720:6:2", + "referencedDeclaration": 169, + "src": "2748:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3309,18 +3447,18 @@ "typeString": "uint256" } ], - "id": 965, + "id": 190, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "2687:18:2", + "referencedDeclaration": 1963, + "src": "2715:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 969, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, @@ -3328,13 +3466,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2687:40:2", + "src": "2715:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2673:54:2", + "src": "2701:54:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3347,14 +3485,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1007, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1005, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -3362,15 +3500,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3051:11:2", + "src": "3079:11:0", "subExpression": { "argumentTypes": null, - "id": 1004, + "id": 229, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3052:10:2", + "referencedDeclaration": 184, + "src": "3080:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3385,18 +3523,18 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1006, + "id": 231, "name": "isParentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3066:13:2", + "referencedDeclaration": 176, + "src": "3094:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3051:28:2", + "src": "3079:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3409,7 +3547,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1053, + "id": 278, "isConstant": false, "isLValue": false, "isPure": false, @@ -3420,19 +3558,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1051, + "id": 276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1044, + "id": 269, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3393:10:2", + "referencedDeclaration": 184, + "src": "3421:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3446,7 +3584,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1050, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, @@ -3457,26 +3595,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1045, + "id": 270, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3407:5:2", + "referencedDeclaration": 22, + "src": "3435:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1047, + "id": 272, "indexExpression": { "argumentTypes": null, - "id": 1046, + "id": 271, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3413:6:2", + "referencedDeclaration": 169, + "src": "3441:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3487,21 +3625,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3407:13:2", + "src": "3435:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1048, + "id": 273, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3407:20:2", + "referencedDeclaration": 11, + "src": "3435:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3511,24 +3649,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1049, + "id": 274, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3650, - "src": "3431:3:2", + "referencedDeclaration": 2879, + "src": "3459:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3407:27:2", + "src": "3435:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:41:2", + "src": "3421:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3538,31 +3676,31 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1052, + "id": 277, "name": "isParentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3438:13:2", + "referencedDeclaration": 176, + "src": "3466:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:58:2", + "src": "3421:58:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1096, + "id": 321, "nodeType": "IfStatement", - "src": "3389:460:2", + "src": "3417:460:0", "trueBody": { - "id": 1095, + "id": 320, "nodeType": "Block", - "src": "3453:396:2", + "src": "3481:396:0", "statements": [ { "expression": { @@ -3574,19 +3712,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1060, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1055, + "id": 280, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3475:8:2", + "referencedDeclaration": 161, + "src": "3503:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3600,26 +3738,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1056, + "id": 281, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3487:5:2", + "referencedDeclaration": 22, + "src": "3515:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1058, + "id": 283, "indexExpression": { "argumentTypes": null, - "id": 1057, + "id": 282, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3493:6:2", + "referencedDeclaration": 169, + "src": "3521:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3630,27 +3768,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3487:13:2", + "src": "3515:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1059, + "id": 284, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "3487:22:2", + "referencedDeclaration": 9, + "src": "3515:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3475:34:2", + "src": "3503:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3659,14 +3797,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c696420706172656e742068617368", - "id": 1061, + "id": 286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3511:27:2", + "src": "3539:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", @@ -3686,21 +3824,21 @@ "typeString": "literal_string \"AKAP: Invalid parent hash\"" } ], - "id": 1054, + "id": 279, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "3467:7:2", + "referencedDeclaration": 2881, + "src": "3495:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1062, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -3708,15 +3846,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3467:72:2", + "src": "3495:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1063, + "id": 288, "nodeType": "ExpressionStatement", - "src": "3467:72:2" + "src": "3495:72:0" }, { "expression": { @@ -3727,12 +3865,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1066, + "id": 291, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3657:6:2", + "referencedDeclaration": 169, + "src": "3685:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3746,20 +3884,20 @@ "typeString": "uint256" } ], - "id": 1065, + "id": 290, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2491 + 1720 ], - "referencedDeclaration": 2491, - "src": "3649:7:2", + "referencedDeclaration": 1720, + "src": "3677:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 1067, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -3767,7 +3905,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3649:15:2", + "src": "3677:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3778,18 +3916,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1068, + "id": 293, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3666:10:2", + "referencedDeclaration": 69, + "src": "3694:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1069, + "id": 294, "isConstant": false, "isLValue": false, "isPure": false, @@ -3797,7 +3935,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3666:12:2", + "src": "3694:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3805,12 +3943,12 @@ }, { "argumentTypes": null, - "id": 1070, + "id": 295, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3680:6:2", + "referencedDeclaration": 169, + "src": "3708:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3832,20 +3970,20 @@ "typeString": "uint256" } ], - "id": 1064, + "id": 289, "name": "_transferFrom", "nodeType": "Identifier", "overloadedDeclarations": [ - 3075 + 2304 ], - "referencedDeclaration": 3075, - "src": "3635:13:2", + "referencedDeclaration": 2304, + "src": "3663:13:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1071, + "id": 296, "isConstant": false, "isLValue": false, "isPure": false, @@ -3853,20 +3991,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3635:52:2", + "src": "3663:52:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 297, "nodeType": "ExpressionStatement", - "src": "3635:52:2" + "src": "3663:52:0" }, { "expression": { "argumentTypes": null, - "id": 1081, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -3877,26 +4015,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1073, + "id": 298, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3701:5:2", + "referencedDeclaration": 22, + "src": "3729:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1075, + "id": 300, "indexExpression": { "argumentTypes": null, - "id": 1074, + "id": 299, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3707:6:2", + "referencedDeclaration": 169, + "src": "3735:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3907,21 +4045,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3701:13:2", + "src": "3729:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1076, + "id": 301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3701:20:2", + "referencedDeclaration": 11, + "src": "3729:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3934,7 +4072,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1079, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, @@ -3942,18 +4080,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "3729:2:2", + "src": "3757:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1078, + "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3730:1:2", + "src": "3758:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3974,20 +4112,20 @@ "typeString": "int_const -1" } ], - "id": 1077, + "id": 302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3724:4:2", + "src": "3752:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1080, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, @@ -3995,21 +4133,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3724:8:2", + "src": "3752:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3701:31:2", + "src": "3729:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1082, + "id": 307, "nodeType": "ExpressionStatement", - "src": "3701:31:2" + "src": "3729:31:0" }, { "eventCall": { @@ -4020,18 +4158,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1084, + "id": 309, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3757:10:2", + "referencedDeclaration": 69, + "src": "3785:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1085, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, @@ -4039,7 +4177,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3757:12:2", + "src": "3785:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4047,12 +4185,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 311, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3771:6:2", + "referencedDeclaration": 169, + "src": "3799:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4060,12 +4198,12 @@ }, { "argumentTypes": null, - "id": 1087, + "id": 312, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3779:8:2", + "referencedDeclaration": 161, + "src": "3807:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4073,12 +4211,12 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 313, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3789:5:2", + "referencedDeclaration": 163, + "src": "3817:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -4088,18 +4226,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1089, + "id": 314, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "3796:9:2", + "referencedDeclaration": 1094, + "src": "3824:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 1090, + "id": 315, "isConstant": false, "isLValue": false, "isPure": true, @@ -4107,9 +4245,9 @@ "memberName": "TRANSFER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3796:18:2", + "src": "3824:18:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -4133,22 +4271,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 1083, + "id": 308, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "3751:5:2", + "referencedDeclaration": 1112, + "src": "3779:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 1091, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, @@ -4156,28 +4294,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3751:64:2", + "src": "3779:64:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1092, + "id": 317, "nodeType": "EmitStatement", - "src": "3746:69:2" + "src": "3774:69:0" }, { "expression": { "argumentTypes": null, "hexValue": "33", - "id": 1093, + "id": 318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3837:1:2", + "src": "3865:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -4185,21 +4323,21 @@ }, "value": "3" }, - "functionReturnParameters": 942, - "id": 1094, + "functionReturnParameters": 167, + "id": 319, "nodeType": "Return", - "src": "3830:8:2" + "src": "3858:8:0" } ] } }, - "id": 1097, + "id": 322, "nodeType": "IfStatement", - "src": "3047:802:2", + "src": "3075:802:0", "trueBody": { - "id": 1043, + "id": 268, "nodeType": "Block", - "src": "3081:302:2", + "src": "3109:302:0", "statements": [ { "expression": { @@ -4210,18 +4348,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1009, + "id": 234, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3158:10:2", + "referencedDeclaration": 69, + "src": "3186:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1010, + "id": 235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4229,7 +4367,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3158:12:2", + "src": "3186:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4237,12 +4375,12 @@ }, { "argumentTypes": null, - "id": 1011, + "id": 236, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3172:6:2", + "referencedDeclaration": 169, + "src": "3200:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4260,20 +4398,20 @@ "typeString": "uint256" } ], - "id": 1008, + "id": 233, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [ - 3099 + 2328 ], - "referencedDeclaration": 3099, - "src": "3152:5:2", + "referencedDeclaration": 2328, + "src": "3180:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 1012, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, @@ -4281,20 +4419,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3152:27:2", + "src": "3180:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1013, + "id": 238, "nodeType": "ExpressionStatement", - "src": "3152:27:2" + "src": "3180:27:0" }, { "expression": { "argumentTypes": null, - "id": 1019, + "id": 244, "isConstant": false, "isLValue": false, "isPure": false, @@ -4305,26 +4443,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 239, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3193:5:2", + "referencedDeclaration": 22, + "src": "3221:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1016, + "id": 241, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 240, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3199:6:2", + "referencedDeclaration": 169, + "src": "3227:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4335,21 +4473,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3193:13:2", + "src": "3221:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1017, + "id": 242, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "3193:22:2", + "referencedDeclaration": 9, + "src": "3221:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4359,31 +4497,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1018, + "id": 243, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3218:8:2", + "referencedDeclaration": 161, + "src": "3246:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3193:33:2", + "src": "3221:33:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1020, + "id": 245, "nodeType": "ExpressionStatement", - "src": "3193:33:2" + "src": "3221:33:0" }, { "expression": { "argumentTypes": null, - "id": 1029, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -4394,26 +4532,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1021, + "id": 246, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3240:5:2", + "referencedDeclaration": 22, + "src": "3268:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1023, + "id": 248, "indexExpression": { "argumentTypes": null, - "id": 1022, + "id": 247, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3246:6:2", + "referencedDeclaration": 169, + "src": "3274:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4424,21 +4562,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3240:13:2", + "src": "3268:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1024, + "id": 249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3240:20:2", + "referencedDeclaration": 11, + "src": "3268:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4451,7 +4589,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1027, + "id": 252, "isConstant": false, "isLValue": false, "isPure": true, @@ -4459,18 +4597,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "3268:2:2", + "src": "3296:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1026, + "id": 251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3269:1:2", + "src": "3297:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4491,20 +4629,20 @@ "typeString": "int_const -1" } ], - "id": 1025, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3263:4:2", + "src": "3291:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1028, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, @@ -4512,21 +4650,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3263:8:2", + "src": "3291:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3240:31:2", + "src": "3268:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1030, + "id": 255, "nodeType": "ExpressionStatement", - "src": "3240:31:2" + "src": "3268:31:0" }, { "eventCall": { @@ -4537,18 +4675,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1032, + "id": 257, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3296:10:2", + "referencedDeclaration": 69, + "src": "3324:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1033, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -4556,7 +4694,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3296:12:2", + "src": "3324:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4564,12 +4702,12 @@ }, { "argumentTypes": null, - "id": 1034, + "id": 259, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3310:6:2", + "referencedDeclaration": 169, + "src": "3338:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4577,12 +4715,12 @@ }, { "argumentTypes": null, - "id": 1035, + "id": 260, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3318:8:2", + "referencedDeclaration": 161, + "src": "3346:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4590,12 +4728,12 @@ }, { "argumentTypes": null, - "id": 1036, + "id": 261, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3328:5:2", + "referencedDeclaration": 163, + "src": "3356:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -4605,18 +4743,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1037, + "id": 262, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "3335:9:2", + "referencedDeclaration": 1094, + "src": "3363:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 1038, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, @@ -4624,9 +4762,9 @@ "memberName": "NEW", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3335:13:2", + "src": "3363:13:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -4650,22 +4788,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 1031, + "id": 256, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "3290:5:2", + "referencedDeclaration": 1112, + "src": "3318:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 1039, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -4673,28 +4811,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3290:59:2", + "src": "3318:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1040, + "id": 265, "nodeType": "EmitStatement", - "src": "3285:64:2" + "src": "3313:64:0" }, { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1041, + "id": 266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3371:1:2", + "src": "3399:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4702,21 +4840,21 @@ }, "value": "2" }, - "functionReturnParameters": 942, - "id": 1042, + "functionReturnParameters": 167, + "id": 267, "nodeType": "Return", - "src": "3364:8:2" + "src": "3392:8:0" } ] } }, - "id": 1098, + "id": 323, "nodeType": "IfStatement", - "src": "2669:1180:2", + "src": "2697:1180:0", "trueBody": { - "id": 1003, + "id": 228, "nodeType": "Block", - "src": "2729:312:2", + "src": "2757:312:0", "statements": [ { "expression": { @@ -4728,19 +4866,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 977, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 972, + "id": 197, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2751:8:2", + "referencedDeclaration": 161, + "src": "2779:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4754,26 +4892,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 973, + "id": 198, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "2763:5:2", + "referencedDeclaration": 22, + "src": "2791:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 975, + "id": 200, "indexExpression": { "argumentTypes": null, - "id": 974, + "id": 199, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2769:6:2", + "referencedDeclaration": 169, + "src": "2797:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4784,27 +4922,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2763:13:2", + "src": "2791:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 976, + "id": 201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "2763:22:2", + "referencedDeclaration": 9, + "src": "2791:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2751:34:2", + "src": "2779:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4813,14 +4951,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c696420706172656e742068617368", - "id": 978, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2787:27:2", + "src": "2815:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", @@ -4840,21 +4978,21 @@ "typeString": "literal_string \"AKAP: Invalid parent hash\"" } ], - "id": 971, + "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "2743:7:2", + "referencedDeclaration": 2881, + "src": "2771:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 979, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -4862,20 +5000,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2743:72:2", + "src": "2771:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 980, + "id": 205, "nodeType": "ExpressionStatement", - "src": "2743:72:2" + "src": "2771:72:0" }, { "expression": { "argumentTypes": null, - "id": 989, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, @@ -4886,26 +5024,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 206, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "2894:5:2", + "referencedDeclaration": 22, + "src": "2922:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 983, + "id": 208, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 207, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2900:6:2", + "referencedDeclaration": 169, + "src": "2928:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4916,21 +5054,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2894:13:2", + "src": "2922:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 984, + "id": 209, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "2894:20:2", + "referencedDeclaration": 11, + "src": "2922:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4943,7 +5081,7 @@ "arguments": [ { "argumentTypes": null, - "id": 987, + "id": 212, "isConstant": false, "isLValue": false, "isPure": true, @@ -4951,18 +5089,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "2922:2:2", + "src": "2950:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 986, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2923:1:2", + "src": "2951:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4983,20 +5121,20 @@ "typeString": "int_const -1" } ], - "id": 985, + "id": 210, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2917:4:2", + "src": "2945:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 988, + "id": 213, "isConstant": false, "isLValue": false, "isPure": true, @@ -5004,21 +5142,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2917:8:2", + "src": "2945:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2894:31:2", + "src": "2922:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 990, + "id": 215, "nodeType": "ExpressionStatement", - "src": "2894:31:2" + "src": "2922:31:0" }, { "eventCall": { @@ -5029,18 +5167,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 992, + "id": 217, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2950:10:2", + "referencedDeclaration": 69, + "src": "2978:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 993, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, @@ -5048,7 +5186,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2950:12:2", + "src": "2978:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5056,12 +5194,12 @@ }, { "argumentTypes": null, - "id": 994, + "id": 219, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2964:6:2", + "referencedDeclaration": 169, + "src": "2992:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5069,12 +5207,12 @@ }, { "argumentTypes": null, - "id": 995, + "id": 220, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2972:8:2", + "referencedDeclaration": 161, + "src": "3000:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5082,12 +5220,12 @@ }, { "argumentTypes": null, - "id": 996, + "id": 221, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2982:5:2", + "referencedDeclaration": 163, + "src": "3010:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5097,18 +5235,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 997, + "id": 222, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "2989:9:2", + "referencedDeclaration": 1094, + "src": "3017:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 998, + "id": 223, "isConstant": false, "isLValue": false, "isPure": true, @@ -5116,9 +5254,9 @@ "memberName": "RECLAIM", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2989:17:2", + "src": "3017:17:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -5142,22 +5280,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 991, + "id": 216, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "2944:5:2", + "referencedDeclaration": 1112, + "src": "2972:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 999, + "id": 224, "isConstant": false, "isLValue": false, "isPure": false, @@ -5165,28 +5303,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2944:63:2", + "src": "2972:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1000, + "id": 225, "nodeType": "EmitStatement", - "src": "2939:68:2" + "src": "2967:68:0" }, { "expression": { "argumentTypes": null, "hexValue": "31", - "id": 1001, + "id": 226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3029:1:2", + "src": "3057:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5194,10 +5332,10 @@ }, "value": "1" }, - "functionReturnParameters": 942, - "id": 1002, + "functionReturnParameters": 167, + "id": 227, "nodeType": "Return", - "src": "3022:8:2" + "src": "3050:8:0" } ] } @@ -5206,14 +5344,14 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3887:1:2", + "src": "3915:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5221,31 +5359,31 @@ }, "value": "0" }, - "functionReturnParameters": 942, - "id": 1100, + "functionReturnParameters": 167, + "id": 325, "nodeType": "Return", - "src": "3880:8:2" + "src": "3908:8:0" } ] }, "documentation": null, - "id": 1102, + "id": 327, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "parameters": { - "id": 939, + "id": 164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 936, + "id": 161, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2116:13:2", + "scope": 327, + "src": "2144:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5253,10 +5391,10 @@ "typeString": "uint256" }, "typeName": { - "id": 935, + "id": 160, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2116:4:2", + "src": "2144:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5267,11 +5405,11 @@ }, { "constant": false, - "id": 938, + "id": 163, "name": "label", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2131:20:2", + "scope": 327, + "src": "2159:20:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -5279,10 +5417,10 @@ "typeString": "bytes" }, "typeName": { - "id": 937, + "id": 162, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2131:5:2", + "src": "2159:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5292,19 +5430,19 @@ "visibility": "internal" } ], - "src": "2115:37:2" + "src": "2143:37:0" }, "returnParameters": { - "id": 942, + "id": 167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 166, "name": "status", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2171:11:2", + "scope": 327, + "src": "2199:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5312,10 +5450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 940, + "id": 165, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2171:4:2", + "src": "2199:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5325,95 +5463,164 @@ "visibility": "internal" } ], - "src": "2170:13:2" + "src": "2198:13:0" }, - "scope": 1335, - "src": "2101:1794:2", + "scope": 564, + "src": "2129:1794:0", "stateMutability": "nonpayable", - "superFunction": 1933, + "superFunction": 1162, "visibility": "external" }, { "body": { - "id": 1113, + "id": 342, "nodeType": "Block", - "src": "3959:39:2", + "src": "3987:53:0", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1110, - "name": "nodeId", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4012:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 334, + "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "3984:6:2", + "referencedDeclaration": 1924, + "src": "4004:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4004:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 337, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4023:6:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1109, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "3976:7:2", + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4032:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4023:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3976:15:2", + "src": "4004:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1108, - "id": 1112, + "functionReturnParameters": 333, + "id": 341, "nodeType": "Return", - "src": "3969:22:2" + "src": "3997:36:0" } ] }, "documentation": null, - "id": 1114, + "id": 343, "implemented": true, "kind": "function", "modifiers": [], "name": "exists", "nodeType": "FunctionDefinition", "parameters": { - "id": 1105, + "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1104, + "id": 329, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "3917:11:2", + "scope": 343, + "src": "3945:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5421,10 +5628,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1103, + "id": 328, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3917:4:2", + "src": "3945:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5434,19 +5641,19 @@ "visibility": "internal" } ], - "src": "3916:13:2" + "src": "3944:13:0" }, "returnParameters": { - "id": 1108, + "id": 333, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1107, + "id": 332, "name": "", "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "3953:4:2", + "scope": 343, + "src": "3981:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5454,10 +5661,10 @@ "typeString": "bool" }, "typeName": { - "id": 1106, + "id": 331, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3953:4:2", + "src": "3981:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5467,19 +5674,19 @@ "visibility": "internal" } ], - "src": "3952:6:2" + "src": "3980:6:0" }, - "scope": 1335, - "src": "3901:97:2", + "scope": 564, + "src": "3929:111:0", "stateMutability": "view", - "superFunction": 1940, + "superFunction": 1169, "visibility": "external" }, { "body": { - "id": 1127, + "id": 356, "nodeType": "Block", - "src": "4073:64:2", + "src": "4115:64:0", "statements": [ { "expression": { @@ -5490,18 +5697,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1122, + "id": 351, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "4109:10:2", + "referencedDeclaration": 69, + "src": "4151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1123, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -5509,7 +5716,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4109:12:2", + "src": "4151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5517,12 +5724,12 @@ }, { "argumentTypes": null, - "id": 1124, + "id": 353, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "4123:6:2", + "referencedDeclaration": 345, + "src": "4165:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5540,18 +5747,18 @@ "typeString": "uint256" } ], - "id": 1121, + "id": 350, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "4090:18:2", + "referencedDeclaration": 1963, + "src": "4132:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 1125, + "id": 354, "isConstant": false, "isLValue": false, "isPure": false, @@ -5559,37 +5766,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4090:40:2", + "src": "4132:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1120, - "id": 1126, + "functionReturnParameters": 349, + "id": 355, "nodeType": "Return", - "src": "4083:47:2" + "src": "4125:47:0" } ] }, "documentation": null, - "id": 1128, + "id": 357, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedOrOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1117, + "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1116, + "id": 345, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "4031:11:2", + "scope": 357, + "src": "4073:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5597,10 +5804,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1115, + "id": 344, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4031:4:2", + "src": "4073:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5610,19 +5817,19 @@ "visibility": "internal" } ], - "src": "4030:13:2" + "src": "4072:13:0" }, "returnParameters": { - "id": 1120, + "id": 349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1119, + "id": 348, "name": "", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "4067:4:2", + "scope": 357, + "src": "4109:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5630,10 +5837,10 @@ "typeString": "bool" }, "typeName": { - "id": 1118, + "id": 347, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4067:4:2", + "src": "4109:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5643,19 +5850,19 @@ "visibility": "internal" } ], - "src": "4066:6:2" + "src": "4108:6:0" }, - "scope": 1335, - "src": "4004:133:2", + "scope": 564, + "src": "4046:133:0", "stateMutability": "view", - "superFunction": 1947, + "superFunction": 1176, "visibility": "external" }, { "body": { - "id": 1143, + "id": 372, "nodeType": "Block", - "src": "4224:46:2", + "src": "4266:46:0", "statements": [ { "expression": { @@ -5664,26 +5871,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1138, + "id": 367, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4241:5:2", + "referencedDeclaration": 22, + "src": "4283:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1140, + "id": 369, "indexExpression": { "argumentTypes": null, - "id": 1139, + "id": 368, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4247:6:2", + "referencedDeclaration": 359, + "src": "4289:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5694,35 +5901,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4241:13:2", + "src": "4283:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1141, + "id": 370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "4241:22:2", + "referencedDeclaration": 9, + "src": "4283:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1137, - "id": 1142, + "functionReturnParameters": 366, + "id": 371, "nodeType": "Return", - "src": "4234:29:2" + "src": "4276:29:0" } ] }, "documentation": null, - "id": 1144, + "id": 373, "implemented": true, "kind": "function", "modifiers": [ @@ -5730,49 +5937,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 362, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4201:6:2", + "referencedDeclaration": 359, + "src": "4243:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1134, + "id": 363, "modifierName": { "argumentTypes": null, - "id": 1132, + "id": 361, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4188:12:2", + "referencedDeclaration": 86, + "src": "4230:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4188:20:2" + "src": "4230:20:0" } ], "name": "parentOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1131, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1130, + "id": 359, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "4161:11:2", + "scope": 373, + "src": "4203:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5780,10 +5987,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1129, + "id": 358, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4161:4:2", + "src": "4203:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5793,19 +6000,19 @@ "visibility": "internal" } ], - "src": "4160:13:2" + "src": "4202:13:0" }, "returnParameters": { - "id": 1137, + "id": 366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1136, + "id": 365, "name": "", "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "4218:4:2", + "scope": 373, + "src": "4260:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5813,10 +6020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1135, + "id": 364, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4218:4:2", + "src": "4260:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5826,19 +6033,19 @@ "visibility": "internal" } ], - "src": "4217:6:2" + "src": "4259:6:0" }, - "scope": 1335, - "src": "4143:127:2", + "scope": 564, + "src": "4185:127:0", "stateMutability": "view", - "superFunction": 1961, + "superFunction": 1190, "visibility": "external" }, { "body": { - "id": 1159, + "id": 388, "nodeType": "Block", - "src": "4357:44:2", + "src": "4399:44:0", "statements": [ { "expression": { @@ -5847,26 +6054,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1154, + "id": 383, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4374:5:2", + "referencedDeclaration": 22, + "src": "4416:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1156, + "id": 385, "indexExpression": { "argumentTypes": null, - "id": 1155, + "id": 384, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "4380:6:2", + "referencedDeclaration": 375, + "src": "4422:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5877,35 +6084,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4374:13:2", + "src": "4416:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1157, + "id": 386, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "4374:20:2", + "referencedDeclaration": 11, + "src": "4416:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1153, - "id": 1158, + "functionReturnParameters": 382, + "id": 387, "nodeType": "Return", - "src": "4367:27:2" + "src": "4409:27:0" } ] }, "documentation": null, - "id": 1160, + "id": 389, "implemented": true, "kind": "function", "modifiers": [ @@ -5913,49 +6120,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1149, + "id": 378, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "4334:6:2", + "referencedDeclaration": 375, + "src": "4376:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1150, + "id": 379, "modifierName": { "argumentTypes": null, - "id": 1148, + "id": 377, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4321:12:2", + "referencedDeclaration": 86, + "src": "4363:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4321:20:2" + "src": "4363:20:0" } ], "name": "expiryOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1147, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1146, + "id": 375, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1160, - "src": "4294:11:2", + "scope": 389, + "src": "4336:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5963,10 +6170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1145, + "id": 374, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4294:4:2", + "src": "4336:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5976,19 +6183,19 @@ "visibility": "internal" } ], - "src": "4293:13:2" + "src": "4335:13:0" }, "returnParameters": { - "id": 1153, + "id": 382, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1152, + "id": 381, "name": "", "nodeType": "VariableDeclaration", - "scope": 1160, - "src": "4351:4:2", + "scope": 389, + "src": "4393:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5996,10 +6203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1151, + "id": 380, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4351:4:2", + "src": "4393:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6009,19 +6216,19 @@ "visibility": "internal" } ], - "src": "4350:6:2" + "src": "4392:6:0" }, - "scope": 1335, - "src": "4276:125:2", + "scope": 564, + "src": "4318:125:0", "stateMutability": "view", - "superFunction": 1968, + "superFunction": 1197, "visibility": "external" }, { "body": { - "id": 1175, + "id": 404, "nodeType": "Block", - "src": "4487:45:2", + "src": "4529:45:0", "statements": [ { "expression": { @@ -6030,26 +6237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1170, + "id": 399, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4504:5:2", + "referencedDeclaration": 22, + "src": "4546:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1172, + "id": 401, "indexExpression": { "argumentTypes": null, - "id": 1171, + "id": 400, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "4510:6:2", + "referencedDeclaration": 391, + "src": "4552:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6060,35 +6267,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4504:13:2", + "src": "4546:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1173, + "id": 402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seeAlso", "nodeType": "MemberAccess", - "referencedDeclaration": 796, - "src": "4504:21:2", + "referencedDeclaration": 13, + "src": "4546:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1169, - "id": 1174, + "functionReturnParameters": 398, + "id": 403, "nodeType": "Return", - "src": "4497:28:2" + "src": "4539:28:0" } ] }, "documentation": null, - "id": 1176, + "id": 405, "implemented": true, "kind": "function", "modifiers": [ @@ -6096,49 +6303,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1165, + "id": 394, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "4464:6:2", + "referencedDeclaration": 391, + "src": "4506:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1166, + "id": 395, "modifierName": { "argumentTypes": null, - "id": 1164, + "id": 393, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4451:12:2", + "referencedDeclaration": 86, + "src": "4493:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4451:20:2" + "src": "4493:20:0" } ], "name": "seeAlso", "nodeType": "FunctionDefinition", "parameters": { - "id": 1163, + "id": 392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1162, + "id": 391, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "4424:11:2", + "scope": 405, + "src": "4466:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6146,10 +6353,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1161, + "id": 390, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4424:4:2", + "src": "4466:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6159,19 +6366,19 @@ "visibility": "internal" } ], - "src": "4423:13:2" + "src": "4465:13:0" }, "returnParameters": { - "id": 1169, + "id": 398, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 397, "name": "", "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "4481:4:2", + "scope": 405, + "src": "4523:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6179,10 +6386,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1167, + "id": 396, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4481:4:2", + "src": "4523:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6192,19 +6399,19 @@ "visibility": "internal" } ], - "src": "4480:6:2" + "src": "4522:6:0" }, - "scope": 1335, - "src": "4407:125:2", + "scope": 564, + "src": "4449:125:0", "stateMutability": "view", - "superFunction": 1975, + "superFunction": 1204, "visibility": "external" }, { "body": { - "id": 1191, + "id": 420, "nodeType": "Block", - "src": "4624:48:2", + "src": "4666:48:0", "statements": [ { "expression": { @@ -6213,26 +6420,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1186, + "id": 415, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4641:5:2", + "referencedDeclaration": 22, + "src": "4683:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1188, + "id": 417, "indexExpression": { "argumentTypes": null, - "id": 1187, + "id": 416, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "4647:6:2", + "referencedDeclaration": 407, + "src": "4689:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6243,35 +6450,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4641:13:2", + "src": "4683:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1189, + "id": 418, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "4641:24:2", + "referencedDeclaration": 15, + "src": "4683:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1185, - "id": 1190, + "functionReturnParameters": 414, + "id": 419, "nodeType": "Return", - "src": "4634:31:2" + "src": "4676:31:0" } ] }, "documentation": null, - "id": 1192, + "id": 421, "implemented": true, "kind": "function", "modifiers": [ @@ -6279,49 +6486,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1181, + "id": 410, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "4598:6:2", + "referencedDeclaration": 407, + "src": "4640:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1182, + "id": 411, "modifierName": { "argumentTypes": null, - "id": 1180, + "id": 409, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4585:12:2", + "referencedDeclaration": 86, + "src": "4627:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4585:20:2" + "src": "4627:20:0" } ], "name": "seeAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1179, + "id": 408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1178, + "id": 407, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1192, - "src": "4558:11:2", + "scope": 421, + "src": "4600:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6329,10 +6536,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1177, + "id": 406, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4558:4:2", + "src": "4600:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6342,19 +6549,19 @@ "visibility": "internal" } ], - "src": "4557:13:2" + "src": "4599:13:0" }, "returnParameters": { - "id": 1185, + "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1184, + "id": 413, "name": "", "nodeType": "VariableDeclaration", - "scope": 1192, - "src": "4615:7:2", + "scope": 421, + "src": "4657:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6362,10 +6569,10 @@ "typeString": "address" }, "typeName": { - "id": 1183, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4615:7:2", + "src": "4657:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6376,19 +6583,19 @@ "visibility": "internal" } ], - "src": "4614:9:2" + "src": "4656:9:0" }, - "scope": 1335, - "src": "4538:134:2", + "scope": 564, + "src": "4580:134:0", "stateMutability": "view", - "superFunction": 1982, + "superFunction": 1211, "visibility": "external" }, { "body": { - "id": 1207, + "id": 436, "nodeType": "Block", - "src": "4767:46:2", + "src": "4809:46:0", "statements": [ { "expression": { @@ -6397,26 +6604,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1202, + "id": 431, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4784:5:2", + "referencedDeclaration": 22, + "src": "4826:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1204, + "id": 433, "indexExpression": { "argumentTypes": null, - "id": 1203, + "id": 432, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4790:6:2", + "referencedDeclaration": 423, + "src": "4832:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6427,35 +6634,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4784:13:2", + "src": "4826:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1205, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeBody", "nodeType": "MemberAccess", - "referencedDeclaration": 800, - "src": "4784:22:2", + "referencedDeclaration": 17, + "src": "4826:22:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "functionReturnParameters": 1201, - "id": 1206, + "functionReturnParameters": 430, + "id": 435, "nodeType": "Return", - "src": "4777:29:2" + "src": "4819:29:0" } ] }, "documentation": null, - "id": 1208, + "id": 437, "implemented": true, "kind": "function", "modifiers": [ @@ -6463,49 +6670,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1197, + "id": 426, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4736:6:2", + "referencedDeclaration": 423, + "src": "4778:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1198, + "id": 427, "modifierName": { "argumentTypes": null, - "id": 1196, + "id": 425, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4723:12:2", + "referencedDeclaration": 86, + "src": "4765:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4723:20:2" + "src": "4765:20:0" } ], "name": "nodeBody", "nodeType": "FunctionDefinition", "parameters": { - "id": 1195, + "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1194, + "id": 423, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1208, - "src": "4696:11:2", + "scope": 437, + "src": "4738:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6513,10 +6720,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1193, + "id": 422, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:2", + "src": "4738:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6526,19 +6733,19 @@ "visibility": "internal" } ], - "src": "4695:13:2" + "src": "4737:13:0" }, "returnParameters": { - "id": 1201, + "id": 430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1200, + "id": 429, "name": "", "nodeType": "VariableDeclaration", - "scope": 1208, - "src": "4753:12:2", + "scope": 437, + "src": "4795:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6546,10 +6753,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1199, + "id": 428, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4753:5:2", + "src": "4795:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6559,24 +6766,24 @@ "visibility": "internal" } ], - "src": "4752:14:2" + "src": "4794:14:0" }, - "scope": 1335, - "src": "4678:135:2", + "scope": 564, + "src": "4720:135:0", "stateMutability": "view", - "superFunction": 1989, + "superFunction": 1218, "visibility": "external" }, { "body": { - "id": 1231, + "id": 460, "nodeType": "Block", - "src": "4882:118:2", + "src": "4924:118:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1221, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -6587,26 +6794,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1216, + "id": 445, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4892:5:2", + "referencedDeclaration": 22, + "src": "4934:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1218, + "id": 447, "indexExpression": { "argumentTypes": null, - "id": 1217, + "id": 446, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4898:6:2", + "referencedDeclaration": 439, + "src": "4940:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6617,21 +6824,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4892:13:2", + "src": "4934:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1219, + "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "4892:20:2", + "referencedDeclaration": 11, + "src": "4934:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6641,26 +6848,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1220, + "id": 449, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3650, - "src": "4915:3:2", + "referencedDeclaration": 2879, + "src": "4957:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4892:26:2", + "src": "4934:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1222, + "id": 451, "nodeType": "ExpressionStatement", - "src": "4892:26:2" + "src": "4934:26:0" }, { "eventCall": { @@ -6671,18 +6878,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1224, + "id": 453, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "4950:10:2", + "referencedDeclaration": 69, + "src": "4992:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1225, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -6690,7 +6897,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4950:12:2", + "src": "4992:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -6698,12 +6905,12 @@ }, { "argumentTypes": null, - "id": 1226, + "id": 455, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4964:6:2", + "referencedDeclaration": 439, + "src": "5006:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6713,18 +6920,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1227, + "id": 456, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "4972:13:2", + "referencedDeclaration": 1100, + "src": "5014:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1228, + "id": 457, "isConstant": false, "isLValue": false, "isPure": true, @@ -6732,9 +6939,9 @@ "memberName": "EXPIRY", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4972:20:2", + "src": "5014:20:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -6750,22 +6957,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1223, + "id": 452, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "4933:16:2", + "referencedDeclaration": 1120, + "src": "4975:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1229, + "id": 458, "isConstant": false, "isLValue": false, "isPure": false, @@ -6773,20 +6980,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4933:60:2", + "src": "4975:60:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1230, + "id": 459, "nodeType": "EmitStatement", - "src": "4928:65:2" + "src": "4970:65:0" } ] }, "documentation": null, - "id": 1232, + "id": 461, "implemented": true, "kind": "function", "modifiers": [ @@ -6794,49 +7001,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1213, + "id": 442, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4874:6:2", + "referencedDeclaration": 439, + "src": "4916:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1214, + "id": 443, "modifierName": { "argumentTypes": null, - "id": 1212, + "id": 441, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "4861:12:2", + "referencedDeclaration": 109, + "src": "4903:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4861:20:2" + "src": "4903:20:0" } ], "name": "expireNode", "nodeType": "FunctionDefinition", "parameters": { - "id": 1211, + "id": 440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1210, + "id": 439, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1232, - "src": "4839:11:2", + "scope": 461, + "src": "4881:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6844,10 +7051,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1209, + "id": 438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4839:4:2", + "src": "4881:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6857,30 +7064,30 @@ "visibility": "internal" } ], - "src": "4838:13:2" + "src": "4880:13:0" }, "returnParameters": { - "id": 1215, + "id": 444, "nodeType": "ParameterList", "parameters": [], - "src": "4882:0:2" + "src": "4924:0:0" }, - "scope": 1335, - "src": "4819:181:2", + "scope": 564, + "src": "4861:181:0", "stateMutability": "nonpayable", - "superFunction": 2001, + "superFunction": 1230, "visibility": "external" }, { "body": { - "id": 1257, + "id": 486, "nodeType": "Block", - "src": "5081:123:2", + "src": "5123:123:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1247, + "id": 476, "isConstant": false, "isLValue": false, "isPure": false, @@ -6891,26 +7098,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1242, + "id": 471, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5091:5:2", + "referencedDeclaration": 22, + "src": "5133:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1244, + "id": 473, "indexExpression": { "argumentTypes": null, - "id": 1243, + "id": 472, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5097:6:2", + "referencedDeclaration": 463, + "src": "5139:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6921,21 +7128,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5091:13:2", + "src": "5133:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1245, + "id": 474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "seeAlso", "nodeType": "MemberAccess", - "referencedDeclaration": 796, - "src": "5091:21:2", + "referencedDeclaration": 13, + "src": "5133:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6945,26 +7152,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1246, + "id": 475, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1236, - "src": "5115:5:2", + "referencedDeclaration": 465, + "src": "5157:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5091:29:2", + "src": "5133:29:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1248, + "id": 477, "nodeType": "ExpressionStatement", - "src": "5091:29:2" + "src": "5133:29:0" }, { "eventCall": { @@ -6975,18 +7182,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1250, + "id": 479, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5152:10:2", + "referencedDeclaration": 69, + "src": "5194:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1251, + "id": 480, "isConstant": false, "isLValue": false, "isPure": false, @@ -6994,7 +7201,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5152:12:2", + "src": "5194:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7002,12 +7209,12 @@ }, { "argumentTypes": null, - "id": 1252, + "id": 481, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5166:6:2", + "referencedDeclaration": 463, + "src": "5208:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7017,18 +7224,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1253, + "id": 482, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5174:13:2", + "referencedDeclaration": 1100, + "src": "5216:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1254, + "id": 483, "isConstant": false, "isLValue": false, "isPure": true, @@ -7036,9 +7243,9 @@ "memberName": "SEE_ALSO", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5174:22:2", + "src": "5216:22:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -7054,22 +7261,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1249, + "id": 478, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5135:16:2", + "referencedDeclaration": 1120, + "src": "5177:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1255, + "id": 484, "isConstant": false, "isLValue": false, "isPure": false, @@ -7077,20 +7284,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:62:2", + "src": "5177:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1256, + "id": 485, "nodeType": "EmitStatement", - "src": "5130:67:2" + "src": "5172:67:0" } ] }, "documentation": null, - "id": 1258, + "id": 487, "implemented": true, "kind": "function", "modifiers": [ @@ -7098,49 +7305,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1239, + "id": 468, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5073:6:2", + "referencedDeclaration": 463, + "src": "5115:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1240, + "id": 469, "modifierName": { "argumentTypes": null, - "id": 1238, + "id": 467, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5060:12:2", + "referencedDeclaration": 109, + "src": "5102:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5060:20:2" + "src": "5102:20:0" } ], "name": "setSeeAlso", "nodeType": "FunctionDefinition", "parameters": { - "id": 1237, + "id": 466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1234, + "id": 463, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "5026:11:2", + "scope": 487, + "src": "5068:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7148,10 +7355,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1233, + "id": 462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5026:4:2", + "src": "5068:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7162,11 +7369,11 @@ }, { "constant": false, - "id": 1236, + "id": 465, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "5039:10:2", + "scope": 487, + "src": "5081:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7174,10 +7381,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1235, + "id": 464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5039:4:2", + "src": "5081:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7187,30 +7394,30 @@ "visibility": "internal" } ], - "src": "5025:25:2" + "src": "5067:25:0" }, "returnParameters": { - "id": 1241, + "id": 470, "nodeType": "ParameterList", "parameters": [], - "src": "5081:0:2" + "src": "5123:0:0" }, - "scope": 1335, - "src": "5006:198:2", + "scope": 564, + "src": "5048:198:0", "stateMutability": "nonpayable", - "superFunction": 2008, + "superFunction": 1237, "visibility": "external" }, { "body": { - "id": 1283, + "id": 512, "nodeType": "Block", - "src": "5291:129:2", + "src": "5333:129:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1273, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -7221,26 +7428,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1268, + "id": 497, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5301:5:2", + "referencedDeclaration": 22, + "src": "5343:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1270, + "id": 499, "indexExpression": { "argumentTypes": null, - "id": 1269, + "id": 498, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5307:6:2", + "referencedDeclaration": 489, + "src": "5349:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7251,21 +7458,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5301:13:2", + "src": "5343:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1271, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "seeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "5301:24:2", + "referencedDeclaration": 15, + "src": "5343:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7275,26 +7482,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1272, + "id": 501, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5328:5:2", + "referencedDeclaration": 491, + "src": "5370:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5301:32:2", + "src": "5343:32:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1274, + "id": 503, "nodeType": "ExpressionStatement", - "src": "5301:32:2" + "src": "5343:32:0" }, { "eventCall": { @@ -7305,18 +7512,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1276, + "id": 505, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5365:10:2", + "referencedDeclaration": 69, + "src": "5407:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1277, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, @@ -7324,7 +7531,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5365:12:2", + "src": "5407:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7332,12 +7539,12 @@ }, { "argumentTypes": null, - "id": 1278, + "id": 507, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5379:6:2", + "referencedDeclaration": 489, + "src": "5421:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7347,18 +7554,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1279, + "id": 508, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5387:13:2", + "referencedDeclaration": 1100, + "src": "5429:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1280, + "id": 509, "isConstant": false, "isLValue": false, "isPure": true, @@ -7366,9 +7573,9 @@ "memberName": "SEE_ADDRESS", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5387:25:2", + "src": "5429:25:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -7384,22 +7591,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1275, + "id": 504, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5348:16:2", + "referencedDeclaration": 1120, + "src": "5390:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1281, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -7407,20 +7614,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5348:65:2", + "src": "5390:65:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1282, + "id": 511, "nodeType": "EmitStatement", - "src": "5343:70:2" + "src": "5385:70:0" } ] }, "documentation": null, - "id": 1284, + "id": 513, "implemented": true, "kind": "function", "modifiers": [ @@ -7428,49 +7635,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1265, + "id": 494, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5283:6:2", + "referencedDeclaration": 489, + "src": "5325:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1266, + "id": 495, "modifierName": { "argumentTypes": null, - "id": 1264, + "id": 493, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5270:12:2", + "referencedDeclaration": 109, + "src": "5312:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5270:20:2" + "src": "5312:20:0" } ], "name": "setSeeAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1263, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1260, + "id": 489, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1284, - "src": "5233:11:2", + "scope": 513, + "src": "5275:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7478,10 +7685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1259, + "id": 488, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:2", + "src": "5275:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7492,11 +7699,11 @@ }, { "constant": false, - "id": 1262, + "id": 491, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1284, - "src": "5246:13:2", + "scope": 513, + "src": "5288:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7504,10 +7711,10 @@ "typeString": "address" }, "typeName": { - "id": 1261, + "id": 490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5246:7:2", + "src": "5288:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7518,30 +7725,30 @@ "visibility": "internal" } ], - "src": "5232:28:2" + "src": "5274:28:0" }, "returnParameters": { - "id": 1267, + "id": 496, "nodeType": "ParameterList", "parameters": [], - "src": "5291:0:2" + "src": "5333:0:0" }, - "scope": 1335, - "src": "5210:210:2", + "scope": 564, + "src": "5252:210:0", "stateMutability": "nonpayable", - "superFunction": 2015, + "superFunction": 1244, "visibility": "external" }, { "body": { - "id": 1309, + "id": 538, "nodeType": "Block", - "src": "5512:125:2", + "src": "5554:125:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1299, + "id": 528, "isConstant": false, "isLValue": false, "isPure": false, @@ -7552,26 +7759,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1294, + "id": 523, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5522:5:2", + "referencedDeclaration": 22, + "src": "5564:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1296, + "id": 525, "indexExpression": { "argumentTypes": null, - "id": 1295, + "id": 524, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5528:6:2", + "referencedDeclaration": 515, + "src": "5570:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7582,21 +7789,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5522:13:2", + "src": "5564:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1297, + "id": 526, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "nodeBody", "nodeType": "MemberAccess", - "referencedDeclaration": 800, - "src": "5522:22:2", + "referencedDeclaration": 17, + "src": "5564:22:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -7606,26 +7813,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1298, + "id": 527, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "5547:5:2", + "referencedDeclaration": 517, + "src": "5589:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "src": "5522:30:2", + "src": "5564:30:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 1300, + "id": 529, "nodeType": "ExpressionStatement", - "src": "5522:30:2" + "src": "5564:30:0" }, { "eventCall": { @@ -7636,18 +7843,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1302, + "id": 531, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5584:10:2", + "referencedDeclaration": 69, + "src": "5626:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1303, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -7655,7 +7862,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5584:12:2", + "src": "5626:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7663,12 +7870,12 @@ }, { "argumentTypes": null, - "id": 1304, + "id": 533, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5598:6:2", + "referencedDeclaration": 515, + "src": "5640:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7678,18 +7885,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1305, + "id": 534, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5606:13:2", + "referencedDeclaration": 1100, + "src": "5648:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1306, + "id": 535, "isConstant": false, "isLValue": false, "isPure": true, @@ -7697,9 +7904,9 @@ "memberName": "NODE_BODY", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5606:23:2", + "src": "5648:23:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -7715,22 +7922,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1301, + "id": 530, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5567:16:2", + "referencedDeclaration": 1120, + "src": "5609:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1307, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -7738,20 +7945,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:63:2", + "src": "5609:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1308, + "id": 537, "nodeType": "EmitStatement", - "src": "5562:68:2" + "src": "5604:68:0" } ] }, "documentation": null, - "id": 1310, + "id": 539, "implemented": true, "kind": "function", "modifiers": [ @@ -7759,49 +7966,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1291, + "id": 520, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5504:6:2", + "referencedDeclaration": 515, + "src": "5546:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1292, + "id": 521, "modifierName": { "argumentTypes": null, - "id": 1290, + "id": 519, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5491:12:2", + "referencedDeclaration": 109, + "src": "5533:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5491:20:2" + "src": "5533:20:0" } ], "name": "setNodeBody", "nodeType": "FunctionDefinition", "parameters": { - "id": 1289, + "id": 518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1286, + "id": 515, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "5447:11:2", + "scope": 539, + "src": "5489:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7809,10 +8016,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1285, + "id": 514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5447:4:2", + "src": "5489:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7823,11 +8030,11 @@ }, { "constant": false, - "id": 1288, + "id": 517, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "5460:20:2", + "scope": 539, + "src": "5502:20:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -7835,10 +8042,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1287, + "id": 516, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5460:5:2", + "src": "5502:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7848,25 +8055,25 @@ "visibility": "internal" } ], - "src": "5446:35:2" + "src": "5488:35:0" }, "returnParameters": { - "id": 1293, + "id": 522, "nodeType": "ParameterList", "parameters": [], - "src": "5512:0:2" + "src": "5554:0:0" }, - "scope": 1335, - "src": "5426:211:2", + "scope": 564, + "src": "5468:211:0", "stateMutability": "nonpayable", - "superFunction": 2022, + "superFunction": 1251, "visibility": "external" }, { "body": { - "id": 1333, + "id": 562, "nodeType": "Block", - "src": "5728:120:2", + "src": "5770:120:0", "statements": [ { "expression": { @@ -7874,12 +8081,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1321, + "id": 550, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5751:6:2", + "referencedDeclaration": 541, + "src": "5793:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7887,12 +8094,12 @@ }, { "argumentTypes": null, - "id": 1322, + "id": 551, "name": "uri", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5759:3:2", + "referencedDeclaration": 543, + "src": "5801:3:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -7910,18 +8117,18 @@ "typeString": "string calldata" } ], - "id": 1320, + "id": 549, "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "5738:12:2", + "referencedDeclaration": 2643, + "src": "5780:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, - "id": 1323, + "id": 552, "isConstant": false, "isLValue": false, "isPure": false, @@ -7929,15 +8136,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5738:25:2", + "src": "5780:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 553, "nodeType": "ExpressionStatement", - "src": "5738:25:2" + "src": "5780:25:0" }, { "eventCall": { @@ -7948,18 +8155,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1326, + "id": 555, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5795:10:2", + "referencedDeclaration": 69, + "src": "5837:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1327, + "id": 556, "isConstant": false, "isLValue": false, "isPure": false, @@ -7967,7 +8174,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5795:12:2", + "src": "5837:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7975,12 +8182,12 @@ }, { "argumentTypes": null, - "id": 1328, + "id": 557, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5809:6:2", + "referencedDeclaration": 541, + "src": "5851:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7990,18 +8197,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1329, + "id": 558, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5817:13:2", + "referencedDeclaration": 1100, + "src": "5859:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1330, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, @@ -8009,9 +8216,9 @@ "memberName": "TOKEN_URI", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5817:23:2", + "src": "5859:23:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -8027,22 +8234,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1325, + "id": 554, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5778:16:2", + "referencedDeclaration": 1120, + "src": "5820:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1331, + "id": 560, "isConstant": false, "isLValue": false, "isPure": false, @@ -8050,20 +8257,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5778:63:2", + "src": "5820:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1332, + "id": 561, "nodeType": "EmitStatement", - "src": "5773:68:2" + "src": "5815:68:0" } ] }, "documentation": null, - "id": 1334, + "id": 563, "implemented": true, "kind": "function", "modifiers": [ @@ -8071,49 +8278,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1317, + "id": 546, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5720:6:2", + "referencedDeclaration": 541, + "src": "5762:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1318, + "id": 547, "modifierName": { "argumentTypes": null, - "id": 1316, + "id": 545, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5707:12:2", + "referencedDeclaration": 109, + "src": "5749:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5707:20:2" + "src": "5749:20:0" } ], "name": "setTokenURI", "nodeType": "FunctionDefinition", "parameters": { - "id": 1315, + "id": 544, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1312, + "id": 541, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1334, - "src": "5664:11:2", + "scope": 563, + "src": "5706:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8121,10 +8328,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1311, + "id": 540, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5664:4:2", + "src": "5706:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8135,11 +8342,11 @@ }, { "constant": false, - "id": 1314, + "id": 543, "name": "uri", "nodeType": "VariableDeclaration", - "scope": 1334, - "src": "5677:19:2", + "scope": 563, + "src": "5719:19:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8147,10 +8354,10 @@ "typeString": "string" }, "typeName": { - "id": 1313, + "id": 542, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5677:6:2", + "src": "5719:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8160,39 +8367,39 @@ "visibility": "internal" } ], - "src": "5663:34:2" + "src": "5705:34:0" }, "returnParameters": { - "id": 1319, + "id": 548, "nodeType": "ParameterList", "parameters": [], - "src": "5728:0:2" + "src": "5770:0:0" }, - "scope": 1335, - "src": "5643:205:2", + "scope": 564, + "src": "5685:205:0", "stateMutability": "nonpayable", - "superFunction": 2029, + "superFunction": 1258, "visibility": "external" } ], - "scope": 1336, - "src": "737:5113:2" + "scope": 565, + "src": "737:5155:0" } ], - "src": "627:5223:2" + "src": "627:5265:0" }, "legacyAST": { "absolutePath": "/private/tmp/eth/akap/contracts/AKAF.sol", "exportedSymbols": { "AKAF": [ - 1335 + 564 ] }, - "id": 1336, + "id": 565, "nodeType": "SourceUnit", "nodes": [ { - "id": 784, + "id": 1, "literals": [ "solidity", "^", @@ -8200,27 +8407,27 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "627:23:2" + "src": "627:23:0" }, { "absolutePath": "/private/tmp/eth/akap/contracts/IAKAP.sol", "file": "./IAKAP.sol", - "id": 785, + "id": 2, "nodeType": "ImportDirective", - "scope": 1336, - "sourceUnit": 2090, - "src": "652:21:2", + "scope": 565, + "sourceUnit": 1319, + "src": "652:21:0", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", "file": "@openzeppelin/contracts/token/ERC721/ERC721Full.sol", - "id": 786, + "id": 3, "nodeType": "ImportDirective", - "scope": 1336, - "sourceUnit": 3317, - "src": "674:61:2", + "scope": 565, + "sourceUnit": 2546, + "src": "674:61:0", "symbolAliases": [], "unitAlias": "" }, @@ -8230,82 +8437,82 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 787, + "id": 4, "name": "IAKAP", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "754:5:2", + "referencedDeclaration": 1318, + "src": "754:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAKAP_$2089", + "typeIdentifier": "t_contract$_IAKAP_$1318", "typeString": "contract IAKAP" } }, - "id": 788, + "id": 5, "nodeType": "InheritanceSpecifier", - "src": "754:5:2" + "src": "754:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 789, + "id": 6, "name": "ERC721Full", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3316, - "src": "761:10:2", + "referencedDeclaration": 2545, + "src": "761:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Full_$3316", + "typeIdentifier": "t_contract$_ERC721Full_$2545", "typeString": "contract ERC721Full" } }, - "id": 790, + "id": 7, "nodeType": "InheritanceSpecifier", - "src": "761:10:2" + "src": "761:10:0" } ], "contractDependencies": [ - 2089, - 2247, - 2257, - 2955, - 3292, - 3316, - 3445, - 3548, - 3575, - 3598 + 1318, + 1476, + 1486, + 2184, + 2521, + 2545, + 2674, + 2777, + 2804, + 2827 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1335, + "id": 564, "linearizedBaseContracts": [ - 1335, - 3316, - 3445, - 3598, - 3292, - 3575, - 2955, - 3548, - 2247, - 2257, - 2089 + 564, + 2545, + 2674, + 2827, + 2521, + 2804, + 2184, + 2777, + 1476, + 1486, + 1318 ], "name": "AKAF", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "AKAF.Node", - "id": 801, + "id": 18, "members": [ { "constant": false, - "id": 792, + "id": 9, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "800:13:2", + "scope": 18, + "src": "800:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8313,10 +8520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 791, + "id": 8, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "800:4:2", + "src": "800:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8327,11 +8534,11 @@ }, { "constant": false, - "id": 794, + "id": 11, "name": "expiry", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "823:11:2", + "scope": 18, + "src": "823:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8339,10 +8546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 793, + "id": 10, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "823:4:2", + "src": "823:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8353,11 +8560,11 @@ }, { "constant": false, - "id": 796, + "id": 13, "name": "seeAlso", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "844:12:2", + "scope": 18, + "src": "844:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8365,10 +8572,10 @@ "typeString": "uint256" }, "typeName": { - "id": 795, + "id": 12, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "844:4:2", + "src": "844:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8379,11 +8586,11 @@ }, { "constant": false, - "id": 798, + "id": 15, "name": "seeAddress", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "866:18:2", + "scope": 18, + "src": "866:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8391,10 +8598,10 @@ "typeString": "address" }, "typeName": { - "id": 797, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "866:7:2", + "src": "866:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8406,11 +8613,11 @@ }, { "constant": false, - "id": 800, + "id": 17, "name": "nodeBody", "nodeType": "VariableDeclaration", - "scope": 801, - "src": "894:14:2", + "scope": 18, + "src": "894:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8418,10 +8625,10 @@ "typeString": "bytes" }, "typeName": { - "id": 799, + "id": 16, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "894:5:2", + "src": "894:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8433,50 +8640,50 @@ ], "name": "Node", "nodeType": "StructDefinition", - "scope": 1335, - "src": "778:137:2", + "scope": 564, + "src": "778:137:0", "visibility": "public" }, { "constant": false, - "id": 805, + "id": 22, "name": "nodes", "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "921:35:2", + "scope": 564, + "src": "921:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node)" }, "typeName": { - "id": 804, + "id": 21, "keyType": { - "id": 802, + "id": 19, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "929:4:2", + "src": "929:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "921:21:2", + "src": "921:21:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node)" }, "valueType": { "contractScope": null, - "id": 803, + "id": 20, "name": "Node", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 801, - "src": "937:4:2", + "referencedDeclaration": 18, + "src": "937:4:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage_ptr", + "typeIdentifier": "t_struct$_Node_$18_storage_ptr", "typeString": "struct AKAF.Node" } } @@ -8486,22 +8693,22 @@ }, { "body": { - "id": 842, + "id": 59, "nodeType": "Block", - "src": "1027:252:2", + "src": "1027:252:0", "statements": [ { "assignments": [ - 813 + 30 ], "declarations": [ { "constant": false, - "id": 813, + "id": 30, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 842, - "src": "1110:11:2", + "scope": 59, + "src": "1110:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8509,10 +8716,10 @@ "typeString": "uint256" }, "typeName": { - "id": 812, + "id": 29, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1110:4:2", + "src": "1110:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8522,18 +8729,18 @@ "visibility": "internal" } ], - "id": 815, + "id": 32, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 814, + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1124:1:2", + "src": "1124:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8542,7 +8749,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1110:15:2" + "src": "1110:15:0" }, { "expression": { @@ -8553,18 +8760,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 817, + "id": 34, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1141:10:2", + "referencedDeclaration": 69, + "src": "1141:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 818, + "id": 35, "isConstant": false, "isLValue": false, "isPure": false, @@ -8572,7 +8779,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1141:12:2", + "src": "1141:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8580,12 +8787,12 @@ }, { "argumentTypes": null, - "id": 819, + "id": 36, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1155:6:2", + "referencedDeclaration": 30, + "src": "1155:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8603,20 +8810,20 @@ "typeString": "uint256" } ], - "id": 816, + "id": 33, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [ - 3099 + 2328 ], - "referencedDeclaration": 3099, - "src": "1135:5:2", + "referencedDeclaration": 2328, + "src": "1135:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 820, + "id": 37, "isConstant": false, "isLValue": false, "isPure": false, @@ -8624,20 +8831,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:27:2", + "src": "1135:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 821, + "id": 38, "nodeType": "ExpressionStatement", - "src": "1135:27:2" + "src": "1135:27:0" }, { "expression": { "argumentTypes": null, - "id": 830, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -8648,26 +8855,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 822, + "id": 39, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "1172:5:2", + "referencedDeclaration": 22, + "src": "1172:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 824, + "id": 41, "indexExpression": { "argumentTypes": null, - "id": 823, + "id": 40, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1178:6:2", + "referencedDeclaration": 30, + "src": "1178:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8678,21 +8885,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1172:13:2", + "src": "1172:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 825, + "id": 42, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "1172:20:2", + "referencedDeclaration": 11, + "src": "1172:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8705,7 +8912,7 @@ "arguments": [ { "argumentTypes": null, - "id": 828, + "id": 45, "isConstant": false, "isLValue": false, "isPure": true, @@ -8713,18 +8920,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "1200:2:2", + "src": "1200:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 827, + "id": 44, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1201:1:2", + "src": "1201:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8745,20 +8952,20 @@ "typeString": "int_const -1" } ], - "id": 826, + "id": 43, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1195:4:2", + "src": "1195:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 829, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, @@ -8766,21 +8973,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1195:8:2", + "src": "1195:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1172:31:2", + "src": "1172:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 831, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1172:31:2" + "src": "1172:31:0" }, { "eventCall": { @@ -8791,18 +8998,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 833, + "id": 50, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1224:10:2", + "referencedDeclaration": 69, + "src": "1224:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 834, + "id": 51, "isConstant": false, "isLValue": false, "isPure": false, @@ -8810,7 +9017,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1224:12:2", + "src": "1224:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8818,12 +9025,12 @@ }, { "argumentTypes": null, - "id": 835, + "id": 52, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1238:6:2", + "referencedDeclaration": 30, + "src": "1238:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8831,12 +9038,12 @@ }, { "argumentTypes": null, - "id": 836, + "id": 53, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "1246:6:2", + "referencedDeclaration": 30, + "src": "1246:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8845,14 +9052,14 @@ { "argumentTypes": null, "hexValue": "", - "id": 837, + "id": 54, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1254:2:2", + "src": "1254:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", @@ -8864,18 +9071,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 838, + "id": 55, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "1258:9:2", + "referencedDeclaration": 1094, + "src": "1258:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 839, + "id": 56, "isConstant": false, "isLValue": false, "isPure": true, @@ -8883,9 +9090,9 @@ "memberName": "NEW", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1258:13:2", + "src": "1258:13:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -8909,22 +9116,22 @@ "typeString": "literal_string \"\"" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 832, + "id": 49, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "1218:5:2", + "referencedDeclaration": 1112, + "src": "1218:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 840, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -8932,20 +9139,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1218:54:2", + "src": "1218:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 841, + "id": 58, "nodeType": "EmitStatement", - "src": "1213:59:2" + "src": "1213:59:0" } ] }, "documentation": null, - "id": 843, + "id": 60, "implemented": true, "kind": "constructor", "modifiers": [ @@ -8954,14 +9161,14 @@ { "argumentTypes": null, "hexValue": "414b4120466f7265766572205265676973747279", - "id": 808, + "id": 25, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "988:22:2", + "src": "988:22:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cae7ceeb2ebe151f1c27619f938a56491425da9af3053c9e79e96783851bd6e3", @@ -8972,14 +9179,14 @@ { "argumentTypes": null, "hexValue": "414b4146", - "id": 809, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1012:6:2", + "src": "1012:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a508d8c7eae35b3a6e2f5a6804bed7b2f7bf00c46f7af065a48ea5aa52ab21e5", @@ -8988,67 +9195,67 @@ "value": "AKAF" } ], - "id": 810, + "id": 27, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 24, "name": "ERC721Full", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "977:10:2", + "referencedDeclaration": 2545, + "src": "977:10:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Full_$3316_$", + "typeIdentifier": "t_type$_t_contract$_ERC721Full_$2545_$", "typeString": "type(contract ERC721Full)" } }, "nodeType": "ModifierInvocation", - "src": "977:42:2" + "src": "977:42:0" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 23, "nodeType": "ParameterList", "parameters": [], - "src": "974:2:2" + "src": "974:2:0" }, "returnParameters": { - "id": 811, + "id": 28, "nodeType": "ParameterList", "parameters": [], - "src": "1027:0:2" + "src": "1027:0:0" }, - "scope": 1335, - "src": "963:316:2", + "scope": 564, + "src": "963:316:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 851, + "id": 68, "nodeType": "Block", - "src": "1347:34:2", + "src": "1347:34:0", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 848, + "id": 65, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3648, - "src": "1364:3:2", + "referencedDeclaration": 2877, + "src": "1364:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 849, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, @@ -9056,43 +9263,43 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1364:10:2", + "src": "1364:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 847, - "id": 850, + "functionReturnParameters": 64, + "id": 67, "nodeType": "Return", - "src": "1357:17:2" + "src": "1357:17:0" } ] }, "documentation": null, - "id": 852, + "id": 69, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { - "id": 844, + "id": 61, "nodeType": "ParameterList", "parameters": [], - "src": "1304:2:2" + "src": "1304:2:0" }, "returnParameters": { - "id": 847, + "id": 64, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 846, + "id": 63, "name": "", "nodeType": "VariableDeclaration", - "scope": 852, - "src": "1330:15:2", + "scope": 69, + "src": "1330:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9100,10 +9307,10 @@ "typeString": "address payable" }, "typeName": { - "id": 845, + "id": 62, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1330:15:2", + "src": "1330:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -9114,19 +9321,19 @@ "visibility": "internal" } ], - "src": "1329:17:2" + "src": "1329:17:0" }, - "scope": 1335, - "src": "1285:96:2", + "scope": 564, + "src": "1285:96:0", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 864, + "id": 85, "nodeType": "Block", - "src": "1422:98:2", + "src": "1422:112:0", "statements": [ { "expression": { @@ -9134,48 +9341,117 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 858, - "name": "nodeId", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 75, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1448:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 74, + "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "1448:6:2", + "referencedDeclaration": 1924, + "src": "1440:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" } + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1440:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 77, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1459:6:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 857, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "1440:7:2", + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1468:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1459:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1440:15:2", + "src": "1440:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9184,14 +9460,14 @@ { "argumentTypes": null, "hexValue": "414b41503a206f70657261746f7220717565727920666f72206e6f6e6578697374656e74206e6f6465", - "id": 860, + "id": 81, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1457:43:2", + "src": "1471:43:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a658d58523fc6cf084d1dd3125a8fc1b3ad66eb4d398c72b5853657b82ff950b", @@ -9211,21 +9487,21 @@ "typeString": "literal_string \"AKAP: operator query for nonexistent node\"" } ], - "id": 856, + "id": 73, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1432:7:2", + "referencedDeclaration": 2881, + "src": "1432:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 861, + "id": 82, "isConstant": false, "isLValue": false, "isPure": false, @@ -9233,38 +9509,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1432:69:2", + "src": "1432:83:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 862, + "id": 83, "nodeType": "ExpressionStatement", - "src": "1432:69:2" + "src": "1432:83:0" }, { - "id": 863, + "id": 84, "nodeType": "PlaceholderStatement", - "src": "1512:1:2" + "src": "1526:1:0" } ] }, "documentation": null, - "id": 865, + "id": 86, "name": "onlyExisting", "nodeType": "ModifierDefinition", "parameters": { - "id": 855, + "id": 72, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 854, + "id": 71, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 865, - "src": "1409:11:2", + "scope": 86, + "src": "1409:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9272,10 +9548,10 @@ "typeString": "uint256" }, "typeName": { - "id": 853, + "id": 70, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1409:4:2", + "src": "1409:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9285,16 +9561,16 @@ "visibility": "internal" } ], - "src": "1408:13:2" + "src": "1408:13:0" }, - "src": "1387:133:2", + "src": "1387:147:0", "visibility": "internal" }, { "body": { - "id": 883, + "id": 108, "nodeType": "Block", - "src": "1561:149:2", + "src": "1575:163:0", "statements": [ { "expression": { @@ -9306,55 +9582,157 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 878, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "nodeId", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 99, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 92, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "1601:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 91, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1924, + "src": "1593:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1593:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 95, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "1631:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 96, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1631:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 97, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "1645:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 94, + "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "1587:6:2", + "referencedDeclaration": 1963, + "src": "1612:18:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" } - ], - "id": 870, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "1579:7:2", + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1612:40:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1579:15:2", + "src": "1593:59:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9364,88 +9742,55 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 874, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "1617:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1617:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "nodeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "1631:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 873, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "1598:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 877, + "id": 102, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1598:40:2", + "leftExpression": { + "argumentTypes": null, + "id": 100, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "1656:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1665:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1656:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1579:59:2", + "src": "1593:73:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9454,14 +9799,14 @@ { "argumentTypes": null, "hexValue": "414b41503a207365742076616c75652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 879, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1640:50:2", + "src": "1668:50:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_267122d712ca03e8a1e34737e2379df35cd276456b17514e34146918d87bc92c", @@ -9481,21 +9826,21 @@ "typeString": "literal_string \"AKAP: set value caller is not owner nor approved\"" } ], - "id": 869, + "id": 90, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1571:7:2", + "referencedDeclaration": 2881, + "src": "1585:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 880, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -9503,38 +9848,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1571:120:2", + "src": "1585:134:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 881, + "id": 106, "nodeType": "ExpressionStatement", - "src": "1571:120:2" + "src": "1585:134:0" }, { - "id": 882, + "id": 107, "nodeType": "PlaceholderStatement", - "src": "1702:1:2" + "src": "1730:1:0" } ] }, "documentation": null, - "id": 884, + "id": 109, "name": "onlyApproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 868, + "id": 89, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 867, + "id": 88, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 884, - "src": "1548:11:2", + "scope": 109, + "src": "1562:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9542,10 +9887,10 @@ "typeString": "uint256" }, "typeName": { - "id": 866, + "id": 87, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1548:4:2", + "src": "1562:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9555,16 +9900,16 @@ "visibility": "internal" } ], - "src": "1547:13:2" + "src": "1561:13:0" }, - "src": "1526:184:2", + "src": "1540:198:0", "visibility": "internal" }, { "body": { - "id": 933, + "id": 158, "nodeType": "Block", - "src": "1797:298:2", + "src": "1825:298:0", "statements": [ { "expression": { @@ -9576,7 +9921,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 902, + "id": 127, "isConstant": false, "isLValue": false, "isPure": false, @@ -9587,7 +9932,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 897, + "id": 122, "isConstant": false, "isLValue": false, "isPure": false, @@ -9596,18 +9941,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 894, + "id": 119, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1815:5:2", + "referencedDeclaration": 113, + "src": "1843:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 895, + "id": 120, "isConstant": false, "isLValue": false, "isPure": false, @@ -9615,7 +9960,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1815:12:2", + "src": "1843:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9626,14 +9971,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 896, + "id": 121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1831:1:2", + "src": "1859:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9641,7 +9986,7 @@ }, "value": "1" }, - "src": "1815:17:2", + "src": "1843:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9655,7 +10000,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 901, + "id": 126, "isConstant": false, "isLValue": false, "isPure": false, @@ -9664,18 +10009,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 898, + "id": 123, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1836:5:2", + "referencedDeclaration": 113, + "src": "1864:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 899, + "id": 124, "isConstant": false, "isLValue": false, "isPure": false, @@ -9683,7 +10028,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1836:12:2", + "src": "1864:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9694,14 +10039,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 900, + "id": 125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1852:2:2", + "src": "1880:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -9709,13 +10054,13 @@ }, "value": "32" }, - "src": "1836:18:2", + "src": "1864:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1815:39:2", + "src": "1843:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9724,14 +10069,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c6964206c6162656c206c656e677468", - "id": 903, + "id": 128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1856:28:2", + "src": "1884:28:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_00918a32a10d2b64eddc50bddc5eb424a8dd1297b66da0875142c7f852ae50b5", @@ -9751,21 +10096,21 @@ "typeString": "literal_string \"AKAP: Invalid label length\"" } ], - "id": 893, + "id": 118, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "1807:7:2", + "referencedDeclaration": 2881, + "src": "1835:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 904, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, @@ -9773,28 +10118,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1807:78:2", + "src": "1835:78:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 905, + "id": 130, "nodeType": "ExpressionStatement", - "src": "1807:78:2" + "src": "1835:78:0" }, { "assignments": [ - 907 + 132 ], "declarations": [ { "constant": false, - "id": 907, + "id": 132, "name": "labelHash", "nodeType": "VariableDeclaration", - "scope": 933, - "src": "1896:17:2", + "scope": 158, + "src": "1924:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9802,10 +10147,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 906, + "id": 131, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1896:7:2", + "src": "1924:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9815,18 +10160,18 @@ "visibility": "internal" } ], - "id": 911, + "id": 136, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 909, + "id": 134, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1926:5:2", + "referencedDeclaration": 113, + "src": "1954:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9840,18 +10185,18 @@ "typeString": "bytes memory" } ], - "id": 908, + "id": 133, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3642, - "src": "1916:9:2", + "referencedDeclaration": 2871, + "src": "1944:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 910, + "id": 135, "isConstant": false, "isLValue": false, "isPure": false, @@ -9859,27 +10204,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1916:16:2", + "src": "1944:16:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1896:36:2" + "src": "1924:36:0" }, { "assignments": [ - 913 + 138 ], "declarations": [ { "constant": false, - "id": 913, + "id": 138, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 933, - "src": "1942:14:2", + "scope": 158, + "src": "1970:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9887,10 +10232,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 912, + "id": 137, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1942:7:2", + "src": "1970:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9900,7 +10245,7 @@ "visibility": "internal" } ], - "id": 921, + "id": 146, "initialValue": { "argumentTypes": null, "arguments": [ @@ -9909,12 +10254,12 @@ "arguments": [ { "argumentTypes": null, - "id": 917, + "id": 142, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "1980:8:2", + "referencedDeclaration": 111, + "src": "2008:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9922,12 +10267,12 @@ }, { "argumentTypes": null, - "id": 918, + "id": 143, "name": "labelHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, - "src": "1990:9:2", + "referencedDeclaration": 132, + "src": "2018:9:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9947,18 +10292,18 @@ ], "expression": { "argumentTypes": null, - "id": 915, + "id": 140, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "1969:3:2", + "referencedDeclaration": 2864, + "src": "1997:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 916, + "id": 141, "isConstant": false, "isLValue": false, "isPure": true, @@ -9966,13 +10311,13 @@ "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1969:10:2", + "src": "1997:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 919, + "id": 144, "isConstant": false, "isLValue": false, "isPure": false, @@ -9980,7 +10325,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1969:31:2", + "src": "1997:31:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9994,18 +10339,18 @@ "typeString": "bytes memory" } ], - "id": 914, + "id": 139, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3642, - "src": "1959:9:2", + "referencedDeclaration": 2871, + "src": "1987:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 920, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -10013,14 +10358,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1959:42:2", + "src": "1987:42:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1942:59:2" + "src": "1970:59:0" }, { "expression": { @@ -10032,19 +10377,19 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 925, + "id": 150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 923, + "id": 148, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "2020:6:2", + "referencedDeclaration": 138, + "src": "2048:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10055,14 +10400,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 924, + "id": 149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2029:1:2", + "src": "2057:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10070,7 +10415,7 @@ }, "value": "0" }, - "src": "2020:10:2", + "src": "2048:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10079,14 +10424,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c6964206e6f64652068617368", - "id": 926, + "id": 151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2032:25:2", + "src": "2060:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f83c7c02ea33e77031e907158a5c8c3333335ada800bb7480d52a6ecfa1f04e2", @@ -10106,21 +10451,21 @@ "typeString": "literal_string \"AKAP: Invalid node hash\"" } ], - "id": 922, + "id": 147, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "2012:7:2", + "referencedDeclaration": 2881, + "src": "2040:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 927, + "id": 152, "isConstant": false, "isLValue": false, "isPure": false, @@ -10128,15 +10473,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2012:46:2", + "src": "2040:46:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 928, + "id": 153, "nodeType": "ExpressionStatement", - "src": "2012:46:2" + "src": "2040:46:0" }, { "expression": { @@ -10144,12 +10489,12 @@ "arguments": [ { "argumentTypes": null, - "id": 930, + "id": 155, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "2081:6:2", + "referencedDeclaration": 138, + "src": "2109:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10163,20 +10508,20 @@ "typeString": "bytes32" } ], - "id": 929, + "id": 154, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2076:4:2", + "src": "2104:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 931, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -10184,37 +10529,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2076:12:2", + "src": "2104:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 892, - "id": 932, + "functionReturnParameters": 117, + "id": 157, "nodeType": "Return", - "src": "2069:19:2" + "src": "2097:19:0" } ] }, "documentation": null, - "id": 934, + "id": 159, "implemented": true, "kind": "function", "modifiers": [], "name": "hashOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 889, + "id": 114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 886, + "id": 111, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1732:13:2", + "scope": 159, + "src": "1760:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10222,10 +10567,10 @@ "typeString": "uint256" }, "typeName": { - "id": 885, + "id": 110, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1732:4:2", + "src": "1760:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10236,11 +10581,11 @@ }, { "constant": false, - "id": 888, + "id": 113, "name": "label", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1747:18:2", + "scope": 159, + "src": "1775:18:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10248,10 +10593,10 @@ "typeString": "bytes" }, "typeName": { - "id": 887, + "id": 112, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1747:5:2", + "src": "1775:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -10261,19 +10606,19 @@ "visibility": "internal" } ], - "src": "1731:35:2" + "src": "1759:35:0" }, "returnParameters": { - "id": 892, + "id": 117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 891, + "id": 116, "name": "id", "nodeType": "VariableDeclaration", - "scope": 934, - "src": "1788:7:2", + "scope": 159, + "src": "1816:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10281,10 +10626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 890, + "id": 115, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1788:4:2", + "src": "1816:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10294,32 +10639,32 @@ "visibility": "internal" } ], - "src": "1787:9:2" + "src": "1815:9:0" }, - "scope": 1335, - "src": "1716:379:2", + "scope": 564, + "src": "1744:379:0", "stateMutability": "pure", - "superFunction": 1924, + "superFunction": 1153, "visibility": "public" }, { "body": { - "id": 1101, + "id": 326, "nodeType": "Block", - "src": "2184:1711:2", + "src": "2212:1711:0", "statements": [ { "assignments": [ - 944 + 169 ], "declarations": [ { "constant": false, - "id": 944, + "id": 169, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2504:11:2", + "scope": 326, + "src": "2532:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10327,10 +10672,10 @@ "typeString": "uint256" }, "typeName": { - "id": 943, + "id": 168, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2504:4:2", + "src": "2532:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10340,18 +10685,18 @@ "visibility": "internal" } ], - "id": 949, + "id": 174, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 946, + "id": 171, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2525:8:2", + "referencedDeclaration": 161, + "src": "2553:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10359,12 +10704,12 @@ }, { "argumentTypes": null, - "id": 947, + "id": 172, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2535:5:2", + "referencedDeclaration": 163, + "src": "2563:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -10382,20 +10727,20 @@ "typeString": "bytes calldata" } ], - "id": 945, + "id": 170, "name": "hashOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 934 + 159 ], - "referencedDeclaration": 934, - "src": "2518:6:2", + "referencedDeclaration": 159, + "src": "2546:6:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,bytes memory) pure returns (uint256)" } }, - "id": 948, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, @@ -10403,27 +10748,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2518:23:2", + "src": "2546:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2504:37:2" + "src": "2532:37:0" }, { "assignments": [ - 951 + 176 ], "declarations": [ { "constant": false, - "id": 951, + "id": 176, "name": "isParentOwner", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2552:18:2", + "scope": 326, + "src": "2580:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10431,10 +10776,10 @@ "typeString": "bool" }, "typeName": { - "id": 950, + "id": 175, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2552:4:2", + "src": "2580:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10444,7 +10789,7 @@ "visibility": "internal" } ], - "id": 957, + "id": 182, "initialValue": { "argumentTypes": null, "arguments": [ @@ -10453,18 +10798,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 953, + "id": 178, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2592:10:2", + "referencedDeclaration": 69, + "src": "2620:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 954, + "id": 179, "isConstant": false, "isLValue": false, "isPure": false, @@ -10472,7 +10817,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2592:12:2", + "src": "2620:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10480,12 +10825,12 @@ }, { "argumentTypes": null, - "id": 955, + "id": 180, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2606:8:2", + "referencedDeclaration": 161, + "src": "2634:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10503,18 +10848,18 @@ "typeString": "uint256" } ], - "id": 952, + "id": 177, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "2573:18:2", + "referencedDeclaration": 1963, + "src": "2601:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 956, + "id": 181, "isConstant": false, "isLValue": false, "isPure": false, @@ -10522,27 +10867,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2573:42:2", + "src": "2601:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "2552:63:2" + "src": "2580:63:0" }, { "assignments": [ - 959 + 184 ], "declarations": [ { "constant": false, - "id": 959, + "id": 184, "name": "nodeExists", "nodeType": "VariableDeclaration", - "scope": 1101, - "src": "2625:15:2", + "scope": 326, + "src": "2653:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10550,10 +10895,10 @@ "typeString": "bool" }, "typeName": { - "id": 958, + "id": 183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2625:4:2", + "src": "2653:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10563,18 +10908,18 @@ "visibility": "internal" } ], - "id": 963, + "id": 188, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 961, + "id": 186, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2651:6:2", + "referencedDeclaration": 169, + "src": "2679:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10588,18 +10933,18 @@ "typeString": "uint256" } ], - "id": 960, + "id": 185, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "2643:7:2", + "referencedDeclaration": 1924, + "src": "2671:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 962, + "id": 187, "isConstant": false, "isLValue": false, "isPure": false, @@ -10607,14 +10952,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2643:15:2", + "src": "2671:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "2625:33:2" + "src": "2653:33:0" }, { "condition": { @@ -10623,19 +10968,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 970, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 964, + "id": 189, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "2673:10:2", + "referencedDeclaration": 184, + "src": "2701:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10651,18 +10996,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 966, + "id": 191, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2706:10:2", + "referencedDeclaration": 69, + "src": "2734:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 967, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -10670,7 +11015,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2706:12:2", + "src": "2734:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10678,12 +11023,12 @@ }, { "argumentTypes": null, - "id": 968, + "id": 193, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2720:6:2", + "referencedDeclaration": 169, + "src": "2748:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10701,18 +11046,18 @@ "typeString": "uint256" } ], - "id": 965, + "id": 190, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "2687:18:2", + "referencedDeclaration": 1963, + "src": "2715:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 969, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, @@ -10720,13 +11065,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2687:40:2", + "src": "2715:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2673:54:2", + "src": "2701:54:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10739,14 +11084,14 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1007, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1005, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -10754,15 +11099,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3051:11:2", + "src": "3079:11:0", "subExpression": { "argumentTypes": null, - "id": 1004, + "id": 229, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3052:10:2", + "referencedDeclaration": 184, + "src": "3080:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10777,18 +11122,18 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1006, + "id": 231, "name": "isParentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3066:13:2", + "referencedDeclaration": 176, + "src": "3094:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3051:28:2", + "src": "3079:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10801,7 +11146,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1053, + "id": 278, "isConstant": false, "isLValue": false, "isPure": false, @@ -10812,19 +11157,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1051, + "id": 276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1044, + "id": 269, "name": "nodeExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3393:10:2", + "referencedDeclaration": 184, + "src": "3421:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10838,7 +11183,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1050, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, @@ -10849,26 +11194,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1045, + "id": 270, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3407:5:2", + "referencedDeclaration": 22, + "src": "3435:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1047, + "id": 272, "indexExpression": { "argumentTypes": null, - "id": 1046, + "id": 271, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3413:6:2", + "referencedDeclaration": 169, + "src": "3441:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10879,21 +11224,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3407:13:2", + "src": "3435:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1048, + "id": 273, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3407:20:2", + "referencedDeclaration": 11, + "src": "3435:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10903,24 +11248,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1049, + "id": 274, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3650, - "src": "3431:3:2", + "referencedDeclaration": 2879, + "src": "3459:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3407:27:2", + "src": "3435:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:41:2", + "src": "3421:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10930,31 +11275,31 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1052, + "id": 277, "name": "isParentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "3438:13:2", + "referencedDeclaration": 176, + "src": "3466:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:58:2", + "src": "3421:58:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1096, + "id": 321, "nodeType": "IfStatement", - "src": "3389:460:2", + "src": "3417:460:0", "trueBody": { - "id": 1095, + "id": 320, "nodeType": "Block", - "src": "3453:396:2", + "src": "3481:396:0", "statements": [ { "expression": { @@ -10966,19 +11311,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1060, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1055, + "id": 280, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3475:8:2", + "referencedDeclaration": 161, + "src": "3503:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10992,26 +11337,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1056, + "id": 281, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3487:5:2", + "referencedDeclaration": 22, + "src": "3515:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1058, + "id": 283, "indexExpression": { "argumentTypes": null, - "id": 1057, + "id": 282, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3493:6:2", + "referencedDeclaration": 169, + "src": "3521:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11022,27 +11367,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3487:13:2", + "src": "3515:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1059, + "id": 284, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "3487:22:2", + "referencedDeclaration": 9, + "src": "3515:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3475:34:2", + "src": "3503:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11051,14 +11396,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c696420706172656e742068617368", - "id": 1061, + "id": 286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3511:27:2", + "src": "3539:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", @@ -11078,21 +11423,21 @@ "typeString": "literal_string \"AKAP: Invalid parent hash\"" } ], - "id": 1054, + "id": 279, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "3467:7:2", + "referencedDeclaration": 2881, + "src": "3495:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1062, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -11100,15 +11445,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3467:72:2", + "src": "3495:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1063, + "id": 288, "nodeType": "ExpressionStatement", - "src": "3467:72:2" + "src": "3495:72:0" }, { "expression": { @@ -11119,12 +11464,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1066, + "id": 291, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3657:6:2", + "referencedDeclaration": 169, + "src": "3685:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11138,20 +11483,20 @@ "typeString": "uint256" } ], - "id": 1065, + "id": 290, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2491 + 1720 ], - "referencedDeclaration": 2491, - "src": "3649:7:2", + "referencedDeclaration": 1720, + "src": "3677:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, - "id": 1067, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -11159,7 +11504,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3649:15:2", + "src": "3677:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11170,18 +11515,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1068, + "id": 293, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3666:10:2", + "referencedDeclaration": 69, + "src": "3694:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1069, + "id": 294, "isConstant": false, "isLValue": false, "isPure": false, @@ -11189,7 +11534,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3666:12:2", + "src": "3694:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11197,12 +11542,12 @@ }, { "argumentTypes": null, - "id": 1070, + "id": 295, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3680:6:2", + "referencedDeclaration": 169, + "src": "3708:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11224,20 +11569,20 @@ "typeString": "uint256" } ], - "id": 1064, + "id": 289, "name": "_transferFrom", "nodeType": "Identifier", "overloadedDeclarations": [ - 3075 + 2304 ], - "referencedDeclaration": 3075, - "src": "3635:13:2", + "referencedDeclaration": 2304, + "src": "3663:13:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1071, + "id": 296, "isConstant": false, "isLValue": false, "isPure": false, @@ -11245,20 +11590,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3635:52:2", + "src": "3663:52:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 297, "nodeType": "ExpressionStatement", - "src": "3635:52:2" + "src": "3663:52:0" }, { "expression": { "argumentTypes": null, - "id": 1081, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -11269,26 +11614,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1073, + "id": 298, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3701:5:2", + "referencedDeclaration": 22, + "src": "3729:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1075, + "id": 300, "indexExpression": { "argumentTypes": null, - "id": 1074, + "id": 299, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3707:6:2", + "referencedDeclaration": 169, + "src": "3735:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11299,21 +11644,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3701:13:2", + "src": "3729:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1076, + "id": 301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3701:20:2", + "referencedDeclaration": 11, + "src": "3729:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11326,7 +11671,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1079, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, @@ -11334,18 +11679,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "3729:2:2", + "src": "3757:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1078, + "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3730:1:2", + "src": "3758:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11366,20 +11711,20 @@ "typeString": "int_const -1" } ], - "id": 1077, + "id": 302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3724:4:2", + "src": "3752:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1080, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, @@ -11387,21 +11732,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3724:8:2", + "src": "3752:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3701:31:2", + "src": "3729:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1082, + "id": 307, "nodeType": "ExpressionStatement", - "src": "3701:31:2" + "src": "3729:31:0" }, { "eventCall": { @@ -11412,18 +11757,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1084, + "id": 309, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3757:10:2", + "referencedDeclaration": 69, + "src": "3785:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1085, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, @@ -11431,7 +11776,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3757:12:2", + "src": "3785:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11439,12 +11784,12 @@ }, { "argumentTypes": null, - "id": 1086, + "id": 311, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3771:6:2", + "referencedDeclaration": 169, + "src": "3799:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11452,12 +11797,12 @@ }, { "argumentTypes": null, - "id": 1087, + "id": 312, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3779:8:2", + "referencedDeclaration": 161, + "src": "3807:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11465,12 +11810,12 @@ }, { "argumentTypes": null, - "id": 1088, + "id": 313, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3789:5:2", + "referencedDeclaration": 163, + "src": "3817:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -11480,18 +11825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1089, + "id": 314, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "3796:9:2", + "referencedDeclaration": 1094, + "src": "3824:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 1090, + "id": 315, "isConstant": false, "isLValue": false, "isPure": true, @@ -11499,9 +11844,9 @@ "memberName": "TRANSFER", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3796:18:2", + "src": "3824:18:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -11525,22 +11870,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 1083, + "id": 308, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "3751:5:2", + "referencedDeclaration": 1112, + "src": "3779:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 1091, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, @@ -11548,28 +11893,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3751:64:2", + "src": "3779:64:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1092, + "id": 317, "nodeType": "EmitStatement", - "src": "3746:69:2" + "src": "3774:69:0" }, { "expression": { "argumentTypes": null, "hexValue": "33", - "id": 1093, + "id": 318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3837:1:2", + "src": "3865:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -11577,21 +11922,21 @@ }, "value": "3" }, - "functionReturnParameters": 942, - "id": 1094, + "functionReturnParameters": 167, + "id": 319, "nodeType": "Return", - "src": "3830:8:2" + "src": "3858:8:0" } ] } }, - "id": 1097, + "id": 322, "nodeType": "IfStatement", - "src": "3047:802:2", + "src": "3075:802:0", "trueBody": { - "id": 1043, + "id": 268, "nodeType": "Block", - "src": "3081:302:2", + "src": "3109:302:0", "statements": [ { "expression": { @@ -11602,18 +11947,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1009, + "id": 234, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3158:10:2", + "referencedDeclaration": 69, + "src": "3186:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1010, + "id": 235, "isConstant": false, "isLValue": false, "isPure": false, @@ -11621,7 +11966,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3158:12:2", + "src": "3186:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11629,12 +11974,12 @@ }, { "argumentTypes": null, - "id": 1011, + "id": 236, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3172:6:2", + "referencedDeclaration": 169, + "src": "3200:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11652,20 +11997,20 @@ "typeString": "uint256" } ], - "id": 1008, + "id": 233, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [ - 3099 + 2328 ], - "referencedDeclaration": 3099, - "src": "3152:5:2", + "referencedDeclaration": 2328, + "src": "3180:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 1012, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, @@ -11673,20 +12018,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3152:27:2", + "src": "3180:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1013, + "id": 238, "nodeType": "ExpressionStatement", - "src": "3152:27:2" + "src": "3180:27:0" }, { "expression": { "argumentTypes": null, - "id": 1019, + "id": 244, "isConstant": false, "isLValue": false, "isPure": false, @@ -11697,26 +12042,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 239, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3193:5:2", + "referencedDeclaration": 22, + "src": "3221:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1016, + "id": 241, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 240, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3199:6:2", + "referencedDeclaration": 169, + "src": "3227:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11727,21 +12072,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3193:13:2", + "src": "3221:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1017, + "id": 242, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "3193:22:2", + "referencedDeclaration": 9, + "src": "3221:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11751,31 +12096,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1018, + "id": 243, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3218:8:2", + "referencedDeclaration": 161, + "src": "3246:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3193:33:2", + "src": "3221:33:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1020, + "id": 245, "nodeType": "ExpressionStatement", - "src": "3193:33:2" + "src": "3221:33:0" }, { "expression": { "argumentTypes": null, - "id": 1029, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -11786,26 +12131,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1021, + "id": 246, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "3240:5:2", + "referencedDeclaration": 22, + "src": "3268:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1023, + "id": 248, "indexExpression": { "argumentTypes": null, - "id": 1022, + "id": 247, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3246:6:2", + "referencedDeclaration": 169, + "src": "3274:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11816,21 +12161,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3240:13:2", + "src": "3268:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1024, + "id": 249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "3240:20:2", + "referencedDeclaration": 11, + "src": "3268:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11843,7 +12188,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1027, + "id": 252, "isConstant": false, "isLValue": false, "isPure": true, @@ -11851,18 +12196,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "3268:2:2", + "src": "3296:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1026, + "id": 251, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3269:1:2", + "src": "3297:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11883,20 +12228,20 @@ "typeString": "int_const -1" } ], - "id": 1025, + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3263:4:2", + "src": "3291:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1028, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, @@ -11904,21 +12249,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3263:8:2", + "src": "3291:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3240:31:2", + "src": "3268:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1030, + "id": 255, "nodeType": "ExpressionStatement", - "src": "3240:31:2" + "src": "3268:31:0" }, { "eventCall": { @@ -11929,18 +12274,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1032, + "id": 257, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "3296:10:2", + "referencedDeclaration": 69, + "src": "3324:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1033, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -11948,7 +12293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3296:12:2", + "src": "3324:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11956,12 +12301,12 @@ }, { "argumentTypes": null, - "id": 1034, + "id": 259, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "3310:6:2", + "referencedDeclaration": 169, + "src": "3338:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11969,12 +12314,12 @@ }, { "argumentTypes": null, - "id": 1035, + "id": 260, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3318:8:2", + "referencedDeclaration": 161, + "src": "3346:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11982,12 +12327,12 @@ }, { "argumentTypes": null, - "id": 1036, + "id": 261, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "3328:5:2", + "referencedDeclaration": 163, + "src": "3356:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -11997,18 +12342,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1037, + "id": 262, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "3335:9:2", + "referencedDeclaration": 1094, + "src": "3363:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 1038, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, @@ -12016,9 +12361,9 @@ "memberName": "NEW", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3335:13:2", + "src": "3363:13:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -12042,22 +12387,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 1031, + "id": 256, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "3290:5:2", + "referencedDeclaration": 1112, + "src": "3318:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 1039, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, @@ -12065,28 +12410,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3290:59:2", + "src": "3318:59:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1040, + "id": 265, "nodeType": "EmitStatement", - "src": "3285:64:2" + "src": "3313:64:0" }, { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1041, + "id": 266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3371:1:2", + "src": "3399:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12094,21 +12439,21 @@ }, "value": "2" }, - "functionReturnParameters": 942, - "id": 1042, + "functionReturnParameters": 167, + "id": 267, "nodeType": "Return", - "src": "3364:8:2" + "src": "3392:8:0" } ] } }, - "id": 1098, + "id": 323, "nodeType": "IfStatement", - "src": "2669:1180:2", + "src": "2697:1180:0", "trueBody": { - "id": 1003, + "id": 228, "nodeType": "Block", - "src": "2729:312:2", + "src": "2757:312:0", "statements": [ { "expression": { @@ -12120,19 +12465,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 977, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 972, + "id": 197, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2751:8:2", + "referencedDeclaration": 161, + "src": "2779:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12146,26 +12491,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 973, + "id": 198, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "2763:5:2", + "referencedDeclaration": 22, + "src": "2791:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 975, + "id": 200, "indexExpression": { "argumentTypes": null, - "id": 974, + "id": 199, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2769:6:2", + "referencedDeclaration": 169, + "src": "2797:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12176,27 +12521,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2763:13:2", + "src": "2791:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 976, + "id": 201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "2763:22:2", + "referencedDeclaration": 9, + "src": "2791:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2751:34:2", + "src": "2779:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12205,14 +12550,14 @@ { "argumentTypes": null, "hexValue": "414b41503a20496e76616c696420706172656e742068617368", - "id": 978, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2787:27:2", + "src": "2815:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_64b34acd8a645818c53dcaba71e4e82f4914fdcb799ec12bc45079715e103af6", @@ -12232,21 +12577,21 @@ "typeString": "literal_string \"AKAP: Invalid parent hash\"" } ], - "id": 971, + "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 3651, - 3652 + 2880, + 2881 ], - "referencedDeclaration": 3652, - "src": "2743:7:2", + "referencedDeclaration": 2881, + "src": "2771:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 979, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -12254,20 +12599,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2743:72:2", + "src": "2771:72:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 980, + "id": 205, "nodeType": "ExpressionStatement", - "src": "2743:72:2" + "src": "2771:72:0" }, { "expression": { "argumentTypes": null, - "id": 989, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, @@ -12278,26 +12623,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 206, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "2894:5:2", + "referencedDeclaration": 22, + "src": "2922:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 983, + "id": 208, "indexExpression": { "argumentTypes": null, - "id": 982, + "id": 207, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2900:6:2", + "referencedDeclaration": 169, + "src": "2928:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12308,21 +12653,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2894:13:2", + "src": "2922:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 984, + "id": 209, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "2894:20:2", + "referencedDeclaration": 11, + "src": "2922:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12335,7 +12680,7 @@ "arguments": [ { "argumentTypes": null, - "id": 987, + "id": 212, "isConstant": false, "isLValue": false, "isPure": true, @@ -12343,18 +12688,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "2922:2:2", + "src": "2950:2:0", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 986, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2923:1:2", + "src": "2951:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12375,20 +12720,20 @@ "typeString": "int_const -1" } ], - "id": 985, + "id": 210, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2917:4:2", + "src": "2945:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 988, + "id": 213, "isConstant": false, "isLValue": false, "isPure": true, @@ -12396,21 +12741,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2917:8:2", + "src": "2945:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2894:31:2", + "src": "2922:31:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 990, + "id": 215, "nodeType": "ExpressionStatement", - "src": "2894:31:2" + "src": "2922:31:0" }, { "eventCall": { @@ -12421,18 +12766,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 992, + "id": 217, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "2950:10:2", + "referencedDeclaration": 69, + "src": "2978:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 993, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, @@ -12440,7 +12785,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2950:12:2", + "src": "2978:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12448,12 +12793,12 @@ }, { "argumentTypes": null, - "id": 994, + "id": 219, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "2964:6:2", + "referencedDeclaration": 169, + "src": "2992:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12461,12 +12806,12 @@ }, { "argumentTypes": null, - "id": 995, + "id": 220, "name": "parentId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "2972:8:2", + "referencedDeclaration": 161, + "src": "3000:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12474,12 +12819,12 @@ }, { "argumentTypes": null, - "id": 996, + "id": 221, "name": "label", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2982:5:2", + "referencedDeclaration": 163, + "src": "3010:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -12489,18 +12834,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 997, + "id": 222, "name": "ClaimCase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "2989:9:2", + "referencedDeclaration": 1094, + "src": "3017:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1865_$", + "typeIdentifier": "t_type$_t_enum$_ClaimCase_$1094_$", "typeString": "type(enum IAKAP.ClaimCase)" } }, - "id": 998, + "id": 223, "isConstant": false, "isLValue": false, "isPure": true, @@ -12508,9 +12853,9 @@ "memberName": "RECLAIM", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2989:17:2", + "src": "3017:17:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } } @@ -12534,22 +12879,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_enum$_ClaimCase_$1865", + "typeIdentifier": "t_enum$_ClaimCase_$1094", "typeString": "enum IAKAP.ClaimCase" } ], - "id": 991, + "id": 216, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "2944:5:2", + "referencedDeclaration": 1112, + "src": "2972:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1865_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_ClaimCase_$1094_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory,enum IAKAP.ClaimCase)" } }, - "id": 999, + "id": 224, "isConstant": false, "isLValue": false, "isPure": false, @@ -12557,28 +12902,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2944:63:2", + "src": "2972:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1000, + "id": 225, "nodeType": "EmitStatement", - "src": "2939:68:2" + "src": "2967:68:0" }, { "expression": { "argumentTypes": null, "hexValue": "31", - "id": 1001, + "id": 226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3029:1:2", + "src": "3057:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12586,10 +12931,10 @@ }, "value": "1" }, - "functionReturnParameters": 942, - "id": 1002, + "functionReturnParameters": 167, + "id": 227, "nodeType": "Return", - "src": "3022:8:2" + "src": "3050:8:0" } ] } @@ -12598,14 +12943,14 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3887:1:2", + "src": "3915:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12613,31 +12958,31 @@ }, "value": "0" }, - "functionReturnParameters": 942, - "id": 1100, + "functionReturnParameters": 167, + "id": 325, "nodeType": "Return", - "src": "3880:8:2" + "src": "3908:8:0" } ] }, "documentation": null, - "id": 1102, + "id": 327, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "parameters": { - "id": 939, + "id": 164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 936, + "id": 161, "name": "parentId", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2116:13:2", + "scope": 327, + "src": "2144:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12645,10 +12990,10 @@ "typeString": "uint256" }, "typeName": { - "id": 935, + "id": 160, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2116:4:2", + "src": "2144:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12659,11 +13004,11 @@ }, { "constant": false, - "id": 938, + "id": 163, "name": "label", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2131:20:2", + "scope": 327, + "src": "2159:20:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -12671,10 +13016,10 @@ "typeString": "bytes" }, "typeName": { - "id": 937, + "id": 162, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2131:5:2", + "src": "2159:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -12684,19 +13029,19 @@ "visibility": "internal" } ], - "src": "2115:37:2" + "src": "2143:37:0" }, "returnParameters": { - "id": 942, + "id": 167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 166, "name": "status", "nodeType": "VariableDeclaration", - "scope": 1102, - "src": "2171:11:2", + "scope": 327, + "src": "2199:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12704,10 +13049,10 @@ "typeString": "uint256" }, "typeName": { - "id": 940, + "id": 165, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2171:4:2", + "src": "2199:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12717,95 +13062,164 @@ "visibility": "internal" } ], - "src": "2170:13:2" + "src": "2198:13:0" }, - "scope": 1335, - "src": "2101:1794:2", + "scope": 564, + "src": "2129:1794:0", "stateMutability": "nonpayable", - "superFunction": 1933, + "superFunction": 1162, "visibility": "external" }, { "body": { - "id": 1113, + "id": 342, "nodeType": "Block", - "src": "3959:39:2", + "src": "3987:53:0", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1110, - "name": "nodeId", + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4012:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 334, + "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "3984:6:2", + "referencedDeclaration": 1924, + "src": "4004:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4004:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { - "argumentTypes": [ - { + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 337, + "name": "nodeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4023:6:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "id": 1109, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "3976:7:2", + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4032:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4023:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3976:15:2", + "src": "4004:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1108, - "id": 1112, + "functionReturnParameters": 333, + "id": 341, "nodeType": "Return", - "src": "3969:22:2" + "src": "3997:36:0" } ] }, "documentation": null, - "id": 1114, + "id": 343, "implemented": true, "kind": "function", "modifiers": [], "name": "exists", "nodeType": "FunctionDefinition", "parameters": { - "id": 1105, + "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1104, + "id": 329, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "3917:11:2", + "scope": 343, + "src": "3945:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12813,10 +13227,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1103, + "id": 328, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3917:4:2", + "src": "3945:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12826,19 +13240,19 @@ "visibility": "internal" } ], - "src": "3916:13:2" + "src": "3944:13:0" }, "returnParameters": { - "id": 1108, + "id": 333, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1107, + "id": 332, "name": "", "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "3953:4:2", + "scope": 343, + "src": "3981:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12846,10 +13260,10 @@ "typeString": "bool" }, "typeName": { - "id": 1106, + "id": 331, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3953:4:2", + "src": "3981:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12859,19 +13273,19 @@ "visibility": "internal" } ], - "src": "3952:6:2" + "src": "3980:6:0" }, - "scope": 1335, - "src": "3901:97:2", + "scope": 564, + "src": "3929:111:0", "stateMutability": "view", - "superFunction": 1940, + "superFunction": 1169, "visibility": "external" }, { "body": { - "id": 1127, + "id": 356, "nodeType": "Block", - "src": "4073:64:2", + "src": "4115:64:0", "statements": [ { "expression": { @@ -12882,18 +13296,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1122, + "id": 351, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "4109:10:2", + "referencedDeclaration": 69, + "src": "4151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1123, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -12901,7 +13315,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4109:12:2", + "src": "4151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12909,12 +13323,12 @@ }, { "argumentTypes": null, - "id": 1124, + "id": 353, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "4123:6:2", + "referencedDeclaration": 345, + "src": "4165:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12932,18 +13346,18 @@ "typeString": "uint256" } ], - "id": 1121, + "id": 350, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2734, - "src": "4090:18:2", + "referencedDeclaration": 1963, + "src": "4132:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, - "id": 1125, + "id": 354, "isConstant": false, "isLValue": false, "isPure": false, @@ -12951,37 +13365,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4090:40:2", + "src": "4132:40:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1120, - "id": 1126, + "functionReturnParameters": 349, + "id": 355, "nodeType": "Return", - "src": "4083:47:2" + "src": "4125:47:0" } ] }, "documentation": null, - "id": 1128, + "id": 357, "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedOrOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1117, + "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1116, + "id": 345, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "4031:11:2", + "scope": 357, + "src": "4073:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12989,10 +13403,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1115, + "id": 344, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4031:4:2", + "src": "4073:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13002,19 +13416,19 @@ "visibility": "internal" } ], - "src": "4030:13:2" + "src": "4072:13:0" }, "returnParameters": { - "id": 1120, + "id": 349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1119, + "id": 348, "name": "", "nodeType": "VariableDeclaration", - "scope": 1128, - "src": "4067:4:2", + "scope": 357, + "src": "4109:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13022,10 +13436,10 @@ "typeString": "bool" }, "typeName": { - "id": 1118, + "id": 347, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4067:4:2", + "src": "4109:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13035,19 +13449,19 @@ "visibility": "internal" } ], - "src": "4066:6:2" + "src": "4108:6:0" }, - "scope": 1335, - "src": "4004:133:2", + "scope": 564, + "src": "4046:133:0", "stateMutability": "view", - "superFunction": 1947, + "superFunction": 1176, "visibility": "external" }, { "body": { - "id": 1143, + "id": 372, "nodeType": "Block", - "src": "4224:46:2", + "src": "4266:46:0", "statements": [ { "expression": { @@ -13056,26 +13470,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1138, + "id": 367, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4241:5:2", + "referencedDeclaration": 22, + "src": "4283:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1140, + "id": 369, "indexExpression": { "argumentTypes": null, - "id": 1139, + "id": 368, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4247:6:2", + "referencedDeclaration": 359, + "src": "4289:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13086,35 +13500,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4241:13:2", + "src": "4283:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1141, + "id": 370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 792, - "src": "4241:22:2", + "referencedDeclaration": 9, + "src": "4283:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1137, - "id": 1142, + "functionReturnParameters": 366, + "id": 371, "nodeType": "Return", - "src": "4234:29:2" + "src": "4276:29:0" } ] }, "documentation": null, - "id": 1144, + "id": 373, "implemented": true, "kind": "function", "modifiers": [ @@ -13122,49 +13536,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 362, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4201:6:2", + "referencedDeclaration": 359, + "src": "4243:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1134, + "id": 363, "modifierName": { "argumentTypes": null, - "id": 1132, + "id": 361, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4188:12:2", + "referencedDeclaration": 86, + "src": "4230:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4188:20:2" + "src": "4230:20:0" } ], "name": "parentOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1131, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1130, + "id": 359, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "4161:11:2", + "scope": 373, + "src": "4203:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13172,10 +13586,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1129, + "id": 358, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4161:4:2", + "src": "4203:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13185,19 +13599,19 @@ "visibility": "internal" } ], - "src": "4160:13:2" + "src": "4202:13:0" }, "returnParameters": { - "id": 1137, + "id": 366, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1136, + "id": 365, "name": "", "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "4218:4:2", + "scope": 373, + "src": "4260:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13205,10 +13619,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1135, + "id": 364, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4218:4:2", + "src": "4260:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13218,19 +13632,19 @@ "visibility": "internal" } ], - "src": "4217:6:2" + "src": "4259:6:0" }, - "scope": 1335, - "src": "4143:127:2", + "scope": 564, + "src": "4185:127:0", "stateMutability": "view", - "superFunction": 1961, + "superFunction": 1190, "visibility": "external" }, { "body": { - "id": 1159, + "id": 388, "nodeType": "Block", - "src": "4357:44:2", + "src": "4399:44:0", "statements": [ { "expression": { @@ -13239,26 +13653,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1154, + "id": 383, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4374:5:2", + "referencedDeclaration": 22, + "src": "4416:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1156, + "id": 385, "indexExpression": { "argumentTypes": null, - "id": 1155, + "id": 384, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "4380:6:2", + "referencedDeclaration": 375, + "src": "4422:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13269,35 +13683,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4374:13:2", + "src": "4416:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1157, + "id": 386, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "4374:20:2", + "referencedDeclaration": 11, + "src": "4416:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1153, - "id": 1158, + "functionReturnParameters": 382, + "id": 387, "nodeType": "Return", - "src": "4367:27:2" + "src": "4409:27:0" } ] }, "documentation": null, - "id": 1160, + "id": 389, "implemented": true, "kind": "function", "modifiers": [ @@ -13305,49 +13719,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1149, + "id": 378, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "4334:6:2", + "referencedDeclaration": 375, + "src": "4376:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1150, + "id": 379, "modifierName": { "argumentTypes": null, - "id": 1148, + "id": 377, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4321:12:2", + "referencedDeclaration": 86, + "src": "4363:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4321:20:2" + "src": "4363:20:0" } ], "name": "expiryOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1147, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1146, + "id": 375, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1160, - "src": "4294:11:2", + "scope": 389, + "src": "4336:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13355,10 +13769,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1145, + "id": 374, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4294:4:2", + "src": "4336:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13368,19 +13782,19 @@ "visibility": "internal" } ], - "src": "4293:13:2" + "src": "4335:13:0" }, "returnParameters": { - "id": 1153, + "id": 382, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1152, + "id": 381, "name": "", "nodeType": "VariableDeclaration", - "scope": 1160, - "src": "4351:4:2", + "scope": 389, + "src": "4393:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13388,10 +13802,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1151, + "id": 380, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4351:4:2", + "src": "4393:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13401,19 +13815,19 @@ "visibility": "internal" } ], - "src": "4350:6:2" + "src": "4392:6:0" }, - "scope": 1335, - "src": "4276:125:2", + "scope": 564, + "src": "4318:125:0", "stateMutability": "view", - "superFunction": 1968, + "superFunction": 1197, "visibility": "external" }, { "body": { - "id": 1175, + "id": 404, "nodeType": "Block", - "src": "4487:45:2", + "src": "4529:45:0", "statements": [ { "expression": { @@ -13422,26 +13836,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1170, + "id": 399, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4504:5:2", + "referencedDeclaration": 22, + "src": "4546:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1172, + "id": 401, "indexExpression": { "argumentTypes": null, - "id": 1171, + "id": 400, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "4510:6:2", + "referencedDeclaration": 391, + "src": "4552:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13452,35 +13866,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4504:13:2", + "src": "4546:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1173, + "id": 402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seeAlso", "nodeType": "MemberAccess", - "referencedDeclaration": 796, - "src": "4504:21:2", + "referencedDeclaration": 13, + "src": "4546:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1169, - "id": 1174, + "functionReturnParameters": 398, + "id": 403, "nodeType": "Return", - "src": "4497:28:2" + "src": "4539:28:0" } ] }, "documentation": null, - "id": 1176, + "id": 405, "implemented": true, "kind": "function", "modifiers": [ @@ -13488,49 +13902,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1165, + "id": 394, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "4464:6:2", + "referencedDeclaration": 391, + "src": "4506:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1166, + "id": 395, "modifierName": { "argumentTypes": null, - "id": 1164, + "id": 393, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4451:12:2", + "referencedDeclaration": 86, + "src": "4493:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4451:20:2" + "src": "4493:20:0" } ], "name": "seeAlso", "nodeType": "FunctionDefinition", "parameters": { - "id": 1163, + "id": 392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1162, + "id": 391, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "4424:11:2", + "scope": 405, + "src": "4466:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13538,10 +13952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1161, + "id": 390, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4424:4:2", + "src": "4466:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13551,19 +13965,19 @@ "visibility": "internal" } ], - "src": "4423:13:2" + "src": "4465:13:0" }, "returnParameters": { - "id": 1169, + "id": 398, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1168, + "id": 397, "name": "", "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "4481:4:2", + "scope": 405, + "src": "4523:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13571,10 +13985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1167, + "id": 396, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4481:4:2", + "src": "4523:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13584,19 +13998,19 @@ "visibility": "internal" } ], - "src": "4480:6:2" + "src": "4522:6:0" }, - "scope": 1335, - "src": "4407:125:2", + "scope": 564, + "src": "4449:125:0", "stateMutability": "view", - "superFunction": 1975, + "superFunction": 1204, "visibility": "external" }, { "body": { - "id": 1191, + "id": 420, "nodeType": "Block", - "src": "4624:48:2", + "src": "4666:48:0", "statements": [ { "expression": { @@ -13605,26 +14019,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1186, + "id": 415, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4641:5:2", + "referencedDeclaration": 22, + "src": "4683:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1188, + "id": 417, "indexExpression": { "argumentTypes": null, - "id": 1187, + "id": 416, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "4647:6:2", + "referencedDeclaration": 407, + "src": "4689:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13635,35 +14049,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4641:13:2", + "src": "4683:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1189, + "id": 418, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "seeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "4641:24:2", + "referencedDeclaration": 15, + "src": "4683:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1185, - "id": 1190, + "functionReturnParameters": 414, + "id": 419, "nodeType": "Return", - "src": "4634:31:2" + "src": "4676:31:0" } ] }, "documentation": null, - "id": 1192, + "id": 421, "implemented": true, "kind": "function", "modifiers": [ @@ -13671,49 +14085,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1181, + "id": 410, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "4598:6:2", + "referencedDeclaration": 407, + "src": "4640:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1182, + "id": 411, "modifierName": { "argumentTypes": null, - "id": 1180, + "id": 409, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4585:12:2", + "referencedDeclaration": 86, + "src": "4627:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4585:20:2" + "src": "4627:20:0" } ], "name": "seeAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1179, + "id": 408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1178, + "id": 407, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1192, - "src": "4558:11:2", + "scope": 421, + "src": "4600:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13721,10 +14135,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1177, + "id": 406, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4558:4:2", + "src": "4600:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13734,19 +14148,19 @@ "visibility": "internal" } ], - "src": "4557:13:2" + "src": "4599:13:0" }, "returnParameters": { - "id": 1185, + "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1184, + "id": 413, "name": "", "nodeType": "VariableDeclaration", - "scope": 1192, - "src": "4615:7:2", + "scope": 421, + "src": "4657:7:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13754,10 +14168,10 @@ "typeString": "address" }, "typeName": { - "id": 1183, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4615:7:2", + "src": "4657:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13768,19 +14182,19 @@ "visibility": "internal" } ], - "src": "4614:9:2" + "src": "4656:9:0" }, - "scope": 1335, - "src": "4538:134:2", + "scope": 564, + "src": "4580:134:0", "stateMutability": "view", - "superFunction": 1982, + "superFunction": 1211, "visibility": "external" }, { "body": { - "id": 1207, + "id": 436, "nodeType": "Block", - "src": "4767:46:2", + "src": "4809:46:0", "statements": [ { "expression": { @@ -13789,26 +14203,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1202, + "id": 431, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4784:5:2", + "referencedDeclaration": 22, + "src": "4826:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1204, + "id": 433, "indexExpression": { "argumentTypes": null, - "id": 1203, + "id": 432, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4790:6:2", + "referencedDeclaration": 423, + "src": "4832:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13819,35 +14233,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4784:13:2", + "src": "4826:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1205, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeBody", "nodeType": "MemberAccess", - "referencedDeclaration": 800, - "src": "4784:22:2", + "referencedDeclaration": 17, + "src": "4826:22:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "functionReturnParameters": 1201, - "id": 1206, + "functionReturnParameters": 430, + "id": 435, "nodeType": "Return", - "src": "4777:29:2" + "src": "4819:29:0" } ] }, "documentation": null, - "id": 1208, + "id": 437, "implemented": true, "kind": "function", "modifiers": [ @@ -13855,49 +14269,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1197, + "id": 426, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1194, - "src": "4736:6:2", + "referencedDeclaration": 423, + "src": "4778:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1198, + "id": 427, "modifierName": { "argumentTypes": null, - "id": 1196, + "id": 425, "name": "onlyExisting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "4723:12:2", + "referencedDeclaration": 86, + "src": "4765:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4723:20:2" + "src": "4765:20:0" } ], "name": "nodeBody", "nodeType": "FunctionDefinition", "parameters": { - "id": 1195, + "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1194, + "id": 423, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1208, - "src": "4696:11:2", + "scope": 437, + "src": "4738:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13905,10 +14319,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1193, + "id": 422, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4696:4:2", + "src": "4738:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13918,19 +14332,19 @@ "visibility": "internal" } ], - "src": "4695:13:2" + "src": "4737:13:0" }, "returnParameters": { - "id": 1201, + "id": 430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1200, + "id": 429, "name": "", "nodeType": "VariableDeclaration", - "scope": 1208, - "src": "4753:12:2", + "scope": 437, + "src": "4795:12:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13938,10 +14352,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1199, + "id": 428, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4753:5:2", + "src": "4795:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -13951,24 +14365,24 @@ "visibility": "internal" } ], - "src": "4752:14:2" + "src": "4794:14:0" }, - "scope": 1335, - "src": "4678:135:2", + "scope": 564, + "src": "4720:135:0", "stateMutability": "view", - "superFunction": 1989, + "superFunction": 1218, "visibility": "external" }, { "body": { - "id": 1231, + "id": 460, "nodeType": "Block", - "src": "4882:118:2", + "src": "4924:118:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1221, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -13979,26 +14393,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1216, + "id": 445, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "4892:5:2", + "referencedDeclaration": 22, + "src": "4934:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1218, + "id": 447, "indexExpression": { "argumentTypes": null, - "id": 1217, + "id": 446, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4898:6:2", + "referencedDeclaration": 439, + "src": "4940:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14009,21 +14423,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4892:13:2", + "src": "4934:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1219, + "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiry", "nodeType": "MemberAccess", - "referencedDeclaration": 794, - "src": "4892:20:2", + "referencedDeclaration": 11, + "src": "4934:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14033,26 +14447,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1220, + "id": 449, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3650, - "src": "4915:3:2", + "referencedDeclaration": 2879, + "src": "4957:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4892:26:2", + "src": "4934:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1222, + "id": 451, "nodeType": "ExpressionStatement", - "src": "4892:26:2" + "src": "4934:26:0" }, { "eventCall": { @@ -14063,18 +14477,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1224, + "id": 453, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "4950:10:2", + "referencedDeclaration": 69, + "src": "4992:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1225, + "id": 454, "isConstant": false, "isLValue": false, "isPure": false, @@ -14082,7 +14496,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4950:12:2", + "src": "4992:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -14090,12 +14504,12 @@ }, { "argumentTypes": null, - "id": 1226, + "id": 455, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4964:6:2", + "referencedDeclaration": 439, + "src": "5006:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14105,18 +14519,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1227, + "id": 456, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "4972:13:2", + "referencedDeclaration": 1100, + "src": "5014:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1228, + "id": 457, "isConstant": false, "isLValue": false, "isPure": true, @@ -14124,9 +14538,9 @@ "memberName": "EXPIRY", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4972:20:2", + "src": "5014:20:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -14142,22 +14556,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1223, + "id": 452, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "4933:16:2", + "referencedDeclaration": 1120, + "src": "4975:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1229, + "id": 458, "isConstant": false, "isLValue": false, "isPure": false, @@ -14165,20 +14579,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4933:60:2", + "src": "4975:60:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1230, + "id": 459, "nodeType": "EmitStatement", - "src": "4928:65:2" + "src": "4970:65:0" } ] }, "documentation": null, - "id": 1232, + "id": 461, "implemented": true, "kind": "function", "modifiers": [ @@ -14186,49 +14600,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1213, + "id": 442, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "4874:6:2", + "referencedDeclaration": 439, + "src": "4916:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1214, + "id": 443, "modifierName": { "argumentTypes": null, - "id": 1212, + "id": 441, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "4861:12:2", + "referencedDeclaration": 109, + "src": "4903:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "4861:20:2" + "src": "4903:20:0" } ], "name": "expireNode", "nodeType": "FunctionDefinition", "parameters": { - "id": 1211, + "id": 440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1210, + "id": 439, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1232, - "src": "4839:11:2", + "scope": 461, + "src": "4881:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14236,10 +14650,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1209, + "id": 438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4839:4:2", + "src": "4881:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14249,30 +14663,30 @@ "visibility": "internal" } ], - "src": "4838:13:2" + "src": "4880:13:0" }, "returnParameters": { - "id": 1215, + "id": 444, "nodeType": "ParameterList", "parameters": [], - "src": "4882:0:2" + "src": "4924:0:0" }, - "scope": 1335, - "src": "4819:181:2", + "scope": 564, + "src": "4861:181:0", "stateMutability": "nonpayable", - "superFunction": 2001, + "superFunction": 1230, "visibility": "external" }, { "body": { - "id": 1257, + "id": 486, "nodeType": "Block", - "src": "5081:123:2", + "src": "5123:123:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1247, + "id": 476, "isConstant": false, "isLValue": false, "isPure": false, @@ -14283,26 +14697,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1242, + "id": 471, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5091:5:2", + "referencedDeclaration": 22, + "src": "5133:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1244, + "id": 473, "indexExpression": { "argumentTypes": null, - "id": 1243, + "id": 472, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5097:6:2", + "referencedDeclaration": 463, + "src": "5139:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14313,21 +14727,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5091:13:2", + "src": "5133:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1245, + "id": 474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "seeAlso", "nodeType": "MemberAccess", - "referencedDeclaration": 796, - "src": "5091:21:2", + "referencedDeclaration": 13, + "src": "5133:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14337,26 +14751,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1246, + "id": 475, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1236, - "src": "5115:5:2", + "referencedDeclaration": 465, + "src": "5157:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5091:29:2", + "src": "5133:29:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1248, + "id": 477, "nodeType": "ExpressionStatement", - "src": "5091:29:2" + "src": "5133:29:0" }, { "eventCall": { @@ -14367,18 +14781,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1250, + "id": 479, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5152:10:2", + "referencedDeclaration": 69, + "src": "5194:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1251, + "id": 480, "isConstant": false, "isLValue": false, "isPure": false, @@ -14386,7 +14800,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5152:12:2", + "src": "5194:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -14394,12 +14808,12 @@ }, { "argumentTypes": null, - "id": 1252, + "id": 481, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5166:6:2", + "referencedDeclaration": 463, + "src": "5208:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14409,18 +14823,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1253, + "id": 482, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5174:13:2", + "referencedDeclaration": 1100, + "src": "5216:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1254, + "id": 483, "isConstant": false, "isLValue": false, "isPure": true, @@ -14428,9 +14842,9 @@ "memberName": "SEE_ALSO", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5174:22:2", + "src": "5216:22:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -14446,22 +14860,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1249, + "id": 478, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5135:16:2", + "referencedDeclaration": 1120, + "src": "5177:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1255, + "id": 484, "isConstant": false, "isLValue": false, "isPure": false, @@ -14469,20 +14883,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:62:2", + "src": "5177:62:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1256, + "id": 485, "nodeType": "EmitStatement", - "src": "5130:67:2" + "src": "5172:67:0" } ] }, "documentation": null, - "id": 1258, + "id": 487, "implemented": true, "kind": "function", "modifiers": [ @@ -14490,49 +14904,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1239, + "id": 468, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "5073:6:2", + "referencedDeclaration": 463, + "src": "5115:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1240, + "id": 469, "modifierName": { "argumentTypes": null, - "id": 1238, + "id": 467, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5060:12:2", + "referencedDeclaration": 109, + "src": "5102:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5060:20:2" + "src": "5102:20:0" } ], "name": "setSeeAlso", "nodeType": "FunctionDefinition", "parameters": { - "id": 1237, + "id": 466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1234, + "id": 463, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "5026:11:2", + "scope": 487, + "src": "5068:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14540,10 +14954,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1233, + "id": 462, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5026:4:2", + "src": "5068:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14554,11 +14968,11 @@ }, { "constant": false, - "id": 1236, + "id": 465, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "5039:10:2", + "scope": 487, + "src": "5081:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14566,10 +14980,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1235, + "id": 464, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5039:4:2", + "src": "5081:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14579,30 +14993,30 @@ "visibility": "internal" } ], - "src": "5025:25:2" + "src": "5067:25:0" }, "returnParameters": { - "id": 1241, + "id": 470, "nodeType": "ParameterList", "parameters": [], - "src": "5081:0:2" + "src": "5123:0:0" }, - "scope": 1335, - "src": "5006:198:2", + "scope": 564, + "src": "5048:198:0", "stateMutability": "nonpayable", - "superFunction": 2008, + "superFunction": 1237, "visibility": "external" }, { "body": { - "id": 1283, + "id": 512, "nodeType": "Block", - "src": "5291:129:2", + "src": "5333:129:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1273, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -14613,26 +15027,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1268, + "id": 497, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5301:5:2", + "referencedDeclaration": 22, + "src": "5343:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1270, + "id": 499, "indexExpression": { "argumentTypes": null, - "id": 1269, + "id": 498, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5307:6:2", + "referencedDeclaration": 489, + "src": "5349:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14643,21 +15057,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5301:13:2", + "src": "5343:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1271, + "id": 500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "seeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "5301:24:2", + "referencedDeclaration": 15, + "src": "5343:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14667,26 +15081,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1272, + "id": 501, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5328:5:2", + "referencedDeclaration": 491, + "src": "5370:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5301:32:2", + "src": "5343:32:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1274, + "id": 503, "nodeType": "ExpressionStatement", - "src": "5301:32:2" + "src": "5343:32:0" }, { "eventCall": { @@ -14697,18 +15111,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1276, + "id": 505, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5365:10:2", + "referencedDeclaration": 69, + "src": "5407:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1277, + "id": 506, "isConstant": false, "isLValue": false, "isPure": false, @@ -14716,7 +15130,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5365:12:2", + "src": "5407:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -14724,12 +15138,12 @@ }, { "argumentTypes": null, - "id": 1278, + "id": 507, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5379:6:2", + "referencedDeclaration": 489, + "src": "5421:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14739,18 +15153,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1279, + "id": 508, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5387:13:2", + "referencedDeclaration": 1100, + "src": "5429:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1280, + "id": 509, "isConstant": false, "isLValue": false, "isPure": true, @@ -14758,9 +15172,9 @@ "memberName": "SEE_ADDRESS", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5387:25:2", + "src": "5429:25:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -14776,22 +15190,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1275, + "id": 504, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5348:16:2", + "referencedDeclaration": 1120, + "src": "5390:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1281, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -14799,20 +15213,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5348:65:2", + "src": "5390:65:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1282, + "id": 511, "nodeType": "EmitStatement", - "src": "5343:70:2" + "src": "5385:70:0" } ] }, "documentation": null, - "id": 1284, + "id": 513, "implemented": true, "kind": "function", "modifiers": [ @@ -14820,49 +15234,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1265, + "id": 494, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "5283:6:2", + "referencedDeclaration": 489, + "src": "5325:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1266, + "id": 495, "modifierName": { "argumentTypes": null, - "id": 1264, + "id": 493, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5270:12:2", + "referencedDeclaration": 109, + "src": "5312:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5270:20:2" + "src": "5312:20:0" } ], "name": "setSeeAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1263, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1260, + "id": 489, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1284, - "src": "5233:11:2", + "scope": 513, + "src": "5275:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14870,10 +15284,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1259, + "id": 488, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5233:4:2", + "src": "5275:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14884,11 +15298,11 @@ }, { "constant": false, - "id": 1262, + "id": 491, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1284, - "src": "5246:13:2", + "scope": 513, + "src": "5288:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14896,10 +15310,10 @@ "typeString": "address" }, "typeName": { - "id": 1261, + "id": 490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5246:7:2", + "src": "5288:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14910,30 +15324,30 @@ "visibility": "internal" } ], - "src": "5232:28:2" + "src": "5274:28:0" }, "returnParameters": { - "id": 1267, + "id": 496, "nodeType": "ParameterList", "parameters": [], - "src": "5291:0:2" + "src": "5333:0:0" }, - "scope": 1335, - "src": "5210:210:2", + "scope": 564, + "src": "5252:210:0", "stateMutability": "nonpayable", - "superFunction": 2015, + "superFunction": 1244, "visibility": "external" }, { "body": { - "id": 1309, + "id": 538, "nodeType": "Block", - "src": "5512:125:2", + "src": "5554:125:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 1299, + "id": 528, "isConstant": false, "isLValue": false, "isPure": false, @@ -14944,26 +15358,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1294, + "id": 523, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "5522:5:2", + "referencedDeclaration": 22, + "src": "5564:5:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$801_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$18_storage_$", "typeString": "mapping(uint256 => struct AKAF.Node storage ref)" } }, - "id": 1296, + "id": 525, "indexExpression": { "argumentTypes": null, - "id": 1295, + "id": 524, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5528:6:2", + "referencedDeclaration": 515, + "src": "5570:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14974,21 +15388,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5522:13:2", + "src": "5564:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Node_$801_storage", + "typeIdentifier": "t_struct$_Node_$18_storage", "typeString": "struct AKAF.Node storage ref" } }, - "id": 1297, + "id": 526, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "nodeBody", "nodeType": "MemberAccess", - "referencedDeclaration": 800, - "src": "5522:22:2", + "referencedDeclaration": 17, + "src": "5564:22:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -14998,26 +15412,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1298, + "id": 527, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "5547:5:2", + "referencedDeclaration": 517, + "src": "5589:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "src": "5522:30:2", + "src": "5564:30:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "id": 1300, + "id": 529, "nodeType": "ExpressionStatement", - "src": "5522:30:2" + "src": "5564:30:0" }, { "eventCall": { @@ -15028,18 +15442,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1302, + "id": 531, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5584:10:2", + "referencedDeclaration": 69, + "src": "5626:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1303, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -15047,7 +15461,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5584:12:2", + "src": "5626:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -15055,12 +15469,12 @@ }, { "argumentTypes": null, - "id": 1304, + "id": 533, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5598:6:2", + "referencedDeclaration": 515, + "src": "5640:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15070,18 +15484,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1305, + "id": 534, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5606:13:2", + "referencedDeclaration": 1100, + "src": "5648:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1306, + "id": 535, "isConstant": false, "isLValue": false, "isPure": true, @@ -15089,9 +15503,9 @@ "memberName": "NODE_BODY", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5606:23:2", + "src": "5648:23:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -15107,22 +15521,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1301, + "id": 530, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5567:16:2", + "referencedDeclaration": 1120, + "src": "5609:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1307, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -15130,20 +15544,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:63:2", + "src": "5609:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1308, + "id": 537, "nodeType": "EmitStatement", - "src": "5562:68:2" + "src": "5604:68:0" } ] }, "documentation": null, - "id": 1310, + "id": 539, "implemented": true, "kind": "function", "modifiers": [ @@ -15151,49 +15565,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1291, + "id": 520, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1286, - "src": "5504:6:2", + "referencedDeclaration": 515, + "src": "5546:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1292, + "id": 521, "modifierName": { "argumentTypes": null, - "id": 1290, + "id": 519, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5491:12:2", + "referencedDeclaration": 109, + "src": "5533:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5491:20:2" + "src": "5533:20:0" } ], "name": "setNodeBody", "nodeType": "FunctionDefinition", "parameters": { - "id": 1289, + "id": 518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1286, + "id": 515, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "5447:11:2", + "scope": 539, + "src": "5489:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15201,10 +15615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1285, + "id": 514, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5447:4:2", + "src": "5489:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15215,11 +15629,11 @@ }, { "constant": false, - "id": 1288, + "id": 517, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "5460:20:2", + "scope": 539, + "src": "5502:20:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -15227,10 +15641,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1287, + "id": 516, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5460:5:2", + "src": "5502:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -15240,25 +15654,25 @@ "visibility": "internal" } ], - "src": "5446:35:2" + "src": "5488:35:0" }, "returnParameters": { - "id": 1293, + "id": 522, "nodeType": "ParameterList", "parameters": [], - "src": "5512:0:2" + "src": "5554:0:0" }, - "scope": 1335, - "src": "5426:211:2", + "scope": 564, + "src": "5468:211:0", "stateMutability": "nonpayable", - "superFunction": 2022, + "superFunction": 1251, "visibility": "external" }, { "body": { - "id": 1333, + "id": 562, "nodeType": "Block", - "src": "5728:120:2", + "src": "5770:120:0", "statements": [ { "expression": { @@ -15266,12 +15680,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1321, + "id": 550, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5751:6:2", + "referencedDeclaration": 541, + "src": "5793:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15279,12 +15693,12 @@ }, { "argumentTypes": null, - "id": 1322, + "id": 551, "name": "uri", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5759:3:2", + "referencedDeclaration": 543, + "src": "5801:3:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -15302,18 +15716,18 @@ "typeString": "string calldata" } ], - "id": 1320, + "id": 549, "name": "_setTokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "5738:12:2", + "referencedDeclaration": 2643, + "src": "5780:12:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, - "id": 1323, + "id": 552, "isConstant": false, "isLValue": false, "isPure": false, @@ -15321,15 +15735,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5738:25:2", + "src": "5780:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 553, "nodeType": "ExpressionStatement", - "src": "5738:25:2" + "src": "5780:25:0" }, { "eventCall": { @@ -15340,18 +15754,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1326, + "id": 555, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 852, - "src": "5795:10:2", + "referencedDeclaration": 69, + "src": "5837:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 1327, + "id": 556, "isConstant": false, "isLValue": false, "isPure": false, @@ -15359,7 +15773,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5795:12:2", + "src": "5837:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -15367,12 +15781,12 @@ }, { "argumentTypes": null, - "id": 1328, + "id": 557, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5809:6:2", + "referencedDeclaration": 541, + "src": "5851:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15382,18 +15796,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1329, + "id": 558, "name": "NodeAttribute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "5817:13:2", + "referencedDeclaration": 1100, + "src": "5859:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1871_$", + "typeIdentifier": "t_type$_t_enum$_NodeAttribute_$1100_$", "typeString": "type(enum IAKAP.NodeAttribute)" } }, - "id": 1330, + "id": 559, "isConstant": false, "isLValue": false, "isPure": true, @@ -15401,9 +15815,9 @@ "memberName": "TOKEN_URI", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5817:23:2", + "src": "5859:23:0", "typeDescriptions": { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } } @@ -15419,22 +15833,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_NodeAttribute_$1871", + "typeIdentifier": "t_enum$_NodeAttribute_$1100", "typeString": "enum IAKAP.NodeAttribute" } ], - "id": 1325, + "id": 554, "name": "AttributeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1891, - "src": "5778:16:2", + "referencedDeclaration": 1120, + "src": "5820:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1871_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_enum$_NodeAttribute_$1100_$returns$__$", "typeString": "function (address,uint256,enum IAKAP.NodeAttribute)" } }, - "id": 1331, + "id": 560, "isConstant": false, "isLValue": false, "isPure": false, @@ -15442,20 +15856,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5778:63:2", + "src": "5820:63:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1332, + "id": 561, "nodeType": "EmitStatement", - "src": "5773:68:2" + "src": "5815:68:0" } ] }, "documentation": null, - "id": 1334, + "id": 563, "implemented": true, "kind": "function", "modifiers": [ @@ -15463,49 +15877,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1317, + "id": 546, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5720:6:2", + "referencedDeclaration": 541, + "src": "5762:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1318, + "id": 547, "modifierName": { "argumentTypes": null, - "id": 1316, + "id": 545, "name": "onlyApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "5707:12:2", + "referencedDeclaration": 109, + "src": "5749:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "5707:20:2" + "src": "5749:20:0" } ], "name": "setTokenURI", "nodeType": "FunctionDefinition", "parameters": { - "id": 1315, + "id": 544, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1312, + "id": 541, "name": "nodeId", "nodeType": "VariableDeclaration", - "scope": 1334, - "src": "5664:11:2", + "scope": 563, + "src": "5706:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15513,10 +15927,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1311, + "id": 540, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5664:4:2", + "src": "5706:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15527,11 +15941,11 @@ }, { "constant": false, - "id": 1314, + "id": 543, "name": "uri", "nodeType": "VariableDeclaration", - "scope": 1334, - "src": "5677:19:2", + "scope": 563, + "src": "5719:19:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -15539,10 +15953,10 @@ "typeString": "string" }, "typeName": { - "id": 1313, + "id": 542, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5677:6:2", + "src": "5719:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -15552,179 +15966,34 @@ "visibility": "internal" } ], - "src": "5663:34:2" + "src": "5705:34:0" }, "returnParameters": { - "id": 1319, + "id": 548, "nodeType": "ParameterList", "parameters": [], - "src": "5728:0:2" + "src": "5770:0:0" }, - "scope": 1335, - "src": "5643:205:2", + "scope": 564, + "src": "5685:205:0", "stateMutability": "nonpayable", - "superFunction": 2029, + "superFunction": 1258, "visibility": "external" } ], - "scope": 1336, - "src": "737:5113:2" + "scope": 565, + "src": "737:5155:0" } ], - "src": "627:5223:2" + "src": "627:5265:0" }, "compiler": { "name": "solc", "version": "0.5.16+commit.9c3226ce.Emscripten.clang" }, - "networks": { - "5777": { - "events": { - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "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" - }, - "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": { - "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" - }, - "0x4e643f23cbc202af4f83dce574290af81b7d940546736d83eec38524c05908f8": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nodeId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IAKAP.NodeAttribute", - "name": "attribute", - "type": "uint8" - } - ], - "name": "AttributeChanged", - "type": "event" - }, - "0x2574d3b5e98dcd17b129343ee43bda3629741c9f23256766c603c18f2c1f014e": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nodeId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "parentId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "label", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "enum IAKAP.ClaimCase", - "name": "claimCase", - "type": "uint8" - } - ], - "name": "Claim", - "type": "event" - }, - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "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" - } - }, - "links": {}, - "address": "0x96923dA433Be67C18D24C5D60B8d4A250D9AC66b", - "transactionHash": "0x31f48623ffd5006724ea313beecab3164036594e0108847076af65fc932e7ccf" - } - }, + "networks": {}, "schemaVersion": "3.0.23", - "updatedAt": "2020-05-12T10:00:23.992Z", + "updatedAt": "2020-05-13T14:37:55.412Z", "devdoc": { "methods": { "approve(address,uint256)": { diff --git a/contracts/AKAF.sol b/contracts/AKAF.sol index 5180b16..a3d401b 100644 --- a/contracts/AKAF.sol +++ b/contracts/AKAF.sol @@ -42,13 +42,13 @@ contract AKAF is IAKAP, ERC721Full { } modifier onlyExisting(uint nodeId) { - require(_exists(nodeId), "AKAP: operator query for nonexistent node"); + require(_exists(nodeId) && nodeId > 0, "AKAP: operator query for nonexistent node"); _; } modifier onlyApproved(uint nodeId) { - require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId), "AKAP: set value caller is not owner nor approved"); + require(_exists(nodeId) && _isApprovedOrOwner(_msgSender(), nodeId) && nodeId > 0, "AKAP: set value caller is not owner nor approved"); _; } @@ -107,7 +107,7 @@ contract AKAF is IAKAP, ERC721Full { } function exists(uint nodeId) external view returns (bool) { - return _exists(nodeId); + return _exists(nodeId) && nodeId > 0; } function isApprovedOrOwner(uint nodeId) external view returns (bool) { diff --git a/package.json b/package.json index f6a6bdc..1f80c68 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "akap", - "version": "1.1.0", + "version": "1.1.1", "description": "AKA protocol, the LDAP of Ethereum", "files": [ "/contracts/*.sol",